免费下载!由 O’Reilly 出版的《NGINX 完全指南》中文版已正式上线 了解详情
写点什么

对 AWS Lambda 的支持添加到了 AWS X-Ray 分布式跟踪服务中

  • 2017-06-12
  • 本文字数:1326 字

    阅读完需:约 4 分钟

AWS X-Ray 分布式跟踪服务 4 月份发布的通用版本(General Availability,GA)中,Amazon 已经为 X-Ray 添加了对 AWS Lambda 的支持,它能够记录函数调用和相关的元数据,通过 AWS Console 进行图像化展示并进行分析以便于调试或故障的恢复。

通过 AWS Console,我们能够将 X-Ray 用于已有的 Lambda 函数,只需导航至函数的配置 Tab 标签,滑动至“Advanced settings”,并选中“Enable active tracing”选择框,或者也可以通过 AWS Command Line Interface (CLI) 来更新函数的追踪配置:

复制代码
$ aws lambda update-function-configuration --tracing-config '{"Mode": "Active"}' --function-name 'my-function-name-or-ARN'

AWS 博客中包含了一篇 Randall Hunt 所撰写的文章,他是 AWS 的开发人员布道师,这篇文章指出,当启用跟踪模式时,Lambda 将会试图跟踪函数,除非它被上游的服务显式地禁用掉。当 Lambda 函数触发的时候,将会生成 trace 并开始进行数据捕获,通过 AWS Console 能够以可视化的方式展现应用资源和它们之间的连接(edges):

AWS Console 中,X-Ray 跟踪的可视化展现(图片来源于 Randall Hunt

每个服务或函数收集到的数据被称之为 segment (类似于 OpenTracing API 规范中的 Span ),以 JSON 数据的方式来进行存储。这种 segment 的样本可以通过 X-Ray daemon 发送至 AWS X-Ray 服务,而 X-Ray daemon 必须要和 Lambda 函数在一起运行。Hunt 指出, X-Ray daemon 确实会消耗 Lambda 函数关联的一点资源,但是如果函数接近特定的内存极限的话,Lambda 将会尝试杀掉 X-Ray daemon,避免出现内存溢出的错误。

segment 代表了一个工作单元,包含了请求和响应的时间,另外还有可选的子 segment(sub-segment),它们会包含更小的工作单元。子segment 可以启动和停止,并且添加了一些额外的元数据,这是通过针对X-Ray 的特定语言SDK 实现的。目前,针对Java 8 运行时的X-Ray SDK 针对Node.js 4.3 的X-Ray SDK 以及一些更新的运行时已经得到了官方的支持,针对其他语言的非官方支持托管在GitHub 上,比如 Fleece 项目所提供的对 Python 的支持。

针对应用的请求会通过一个 trace 来进行跟踪。trace 会收集单个请求所生成的所有 segment。这意味着我们可以很容易地跟踪在请求生命周期中,已支持的服务所发出的所有的事件,比如 API 网关调用、应用 / 服务函数的处理以及对 X-Ray 所支持的数据存储(比如 AWS DynamoDB)的所有操作,从而能够理解哪里出现了错误以及延迟发生在什么地方。

关于 AWS X-Ray 所支持的 AWS 服务的更多细节可以参考“ Integrating AWS X-Ray with Other AWS Services ”文档。关于 AWS X-Ray 以及相关跟踪术语可以参考 InfoQ 之前的新闻,这篇新闻是在 2016 AWS re:invent 会议之后发布的。

X-Ray 服务可以通过美国东部(北弗吉尼亚)、美国西部(加州北部)、美国东部(俄亥俄)、美国西部(俄勒冈州)、欧盟(爱尔兰)、欧盟(法兰克福)、南美洲(圣保罗)、亚太(东京)、亚太(首尔)、亚太(悉尼)以及亚太(孟买)的这些 Region 来进行使用。其他的信息可以通过 AWS Lambda 页面和 Troubleshooting Lambda-Based Applications 文档来进行获取。

查看英文原文 AWS Lambda Support Added to AWS X-Ray Distributed Tracing Service

2017-06-12 19:00840

评论

发布
暂无评论
发现更多内容

刚出炉的《Java开发手册黄山版》,我帮你们圈出了改动点!

捉虫大师

【TcaplusDB知识库】PB表C++示例代码-本地索引查询示例

tcaplus

智能运维引擎 CudgX 更新 V0.2.0 版本,新增根据 MetricQPS 进行自动扩缩容!

星汉未来

云原生 算力 智能运维 扩缩容

开源算力引擎 BridgX 发布 0.6.0 版本:新增三种权限管理功能

星汉未来

开源 运维 云原生 云计算, 开源生态

跨平台应用开发进阶(二) :uni-app 实战

No Silver Bullet

uni-app 跨平台 规范 2月月更

详解CNN实现中文文本分类过程

华为云开发者联盟

机器学习 CNN 深度神经网络 文本分类 Word2Vec

【TcaplusDB知识库】PB表C++示例代码-删除List表数据

tcaplus

一文看懂业界在离线混部技术

星汉未来

开源 云原生 服务治理 云计算, 混部

你知道,java项目中是如何获取文件地址的吗?

华为云开发者联盟

Java 路径 ClassLoader 文件地址 绝对地址

YoloV5实战:手把手教物体检测

华为云开发者联盟

物体检测 模型 yolo YOLOv5 Labelme

【TcaplusDB知识库】PB表 C++ 示例代码-读取数据

tcaplus

【TcaplusDB知识库】PB表C++示例代码-查询List表数据

tcaplus

【思特奇杯·云上蓝桥-算法集训营】第2周----真题汇总+思路分享

是Dream呀

2月月更

爬虫requests模块 入门到入狱 :基础知识+实战分析

是Dream呀

2月月更

基础架构部如何推动新一代云原生架构变革

星汉未来

开源 云原生 开源社区 云计算,

使用s3fs在centos上挂载bucket

阿呆

S3

【TcaplusDB知识库】PB表 C++ 示例代码-更新数据

tcaplus

【Python训练营】Python每日一练----第2天:门牌制作

是Dream呀

2月月更

Hive 数据倾斜问题定位排查及解决

编程江湖

如何找寻职业方向感

万事ONES

ONES

【TcaplusDB知识库】PB表 C++ 示例代码-插入数据

tcaplus

【TcaplusDB知识库】PB表C++示例代码-修改List表数据

tcaplus

Flutter 屏幕采集实战分享

ZEGO即构

flutter 音视频开发 屏幕采集编码

【TcaplusDB知识库】PB表C++示例代码-删除数据

tcaplus

【TcaplusDB知识库】PB表C++示例代码-批量删除List表元素数据

tcaplus

【TcaplusDB知识库】PB表C++示例代码-删除List记录所有元素数据

tcaplus

Python格式字符串的三种方法你都掌握了吗,%s%d%f+format()+f-string,深度测评YYDS实至名归

是Dream呀

2月月更

产品更新 | 数据物流引擎 DTExpress 新增算力市场及跨云传输

星汉未来

数据迁移 云算力 云 原生云 CTO

一行代码:开启 eBPF,代替 iptables,加速 Istio

Daocloud 道客

istio 开源项目 网络加速 服务网格 ebpf

【TcaplusDB知识库】PB表C++示例代码-插入List表数据

tcaplus

对AWS Lambda的支持添加到了AWS X-Ray分布式跟踪服务中_DevOps_Daniel Bryant_InfoQ精选文章