AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

利用 AWS X-Ray 跟踪基于 Lambda 的应用程序

AWS X-Ray 是一种 AWS 服务,使您可以通过 AWS Lambda 应用程序检测、分析和优化性能问题。X-Ray 从 Lambda 服务和组成您的应用程序的所有上游或下游服务中收集元数据。X-Ray 使用这些元数据生成详细的服务图形,用于说明性能瓶颈,延迟峰值,以及影响 Lambda 应用程序性能的其他问题。

使用 AWS X-Ray 服务地图上的 Lambda 识别出有问题的资源或组件后,您可以进行放大,查看请求的可视化形式。此可视化形式涵盖的时间范围从事件源触发 Lambda 函数开始,直到函数执行完成。X-Ray 可以为您提供函数操作的分析结果,如 Lambda 函数对其他服务进行的下游调用的信息。此外,X-Ray 与 Lambda 的集成还便于您了解 AWS Lambda 服务开销。它通过显示请求的停留时间和调用数量等具体信息来实现此功能。

注意

只有目前与 X-Ray 集成的服务可在您的 Lambda 跟踪之外显示为独立跟踪。有关当前支持 X-Ray 的服务列表,请参阅将 AWS X-Ray 与其他 AWS 服务集成

AWS X-Ray 服务地图上的 Lambda

针对 Lambda 处理的请求,X-Ray 在服务地图上显示三种类型的节点:

  • Lambda 服务 (AWS::Lambda) – 此类节点表示请求用于 Lambda 服务的时间。Lambda 首次接收请求时开始计时,直到请求离开 Lambda 服务时计时结束。

  • Lambda 函数 (AWS::Lambda::Function) – 此类节点表示 Lambda 函数的执行时间。

  • 下游服务调用 – 在这种类型中,Lambda 函数发出的每个下游服务调用均表示为一个单独的节点。

下图中的节点(从左到右)依次代表:Lambda 服务、用户函数和对 Amazon S3 的下游调用:

有关更多信息,请参阅查看服务地图

Lambda 作为 AWS X-Ray 跟踪

您可以在服务地图中进行放大,查看您的 Lambda 函数的跟踪视图。跟踪将显示与函数调用相关的深度信息,以分段和子分段表示。

  • Lambda 服务分段 – 此分段表示不同的信息,具体取决于调用函数的事件源:

    • 同步和流事件源 – 此服务分段计算从 Lambda 服务接收请求/事件,直到请求离开 Lambda 服务(完成请求的最终调用)所经历的时间。

    • 异步 – 此服务分段表示响应时间,即 Lambda 服务向客户端返回 202 响应所需的时间。

    Lambda 服务分段可以包含两种类型的子分段:

    • 停留时间(仅限异步调用)– 表示函数在被调用之前在 Lambda 服务中花费的时间。这个子分段在 Lambda 服务接收请求/事件时开始,在首次调用 Lambda 函数时结束。

    • 尝试 – 表示单次调用尝试,包括 Lambda 服务引起的任何开销。开销示例包括初始化函数代码所花费的时间和函数执行时间。

  • Lambda 函数分段 – 表示函数针对给定调用尝试的执行时间。该分段于函数处理程序启动时开始,函数终止时结束。该分段可以包含三种类型的子分段:

    • 初始化 – 运行函数 initialization 代码(定义为 Lambda 函数处理程序或静态初始化程序的外部代码)所花费的时间。

    • 下游调用 – Lambda 函数的代码对其他 AWS 服务的调用。

    • 自定义子分段 – 自定义子分段或用户注释,可以使用 X-Ray 开发工具包添加到 Lambda 函数分段中。

注意

对于每个跟踪调用,Lambda 会发送 Lambda 服务分段及其所有子分段。这些片段无论运行时如何都将发出,并要求您使用 X-Ray SDK for AWS API 调用。