Amazon X-Ray和 Step Functions - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon X-Ray和 Step Functions

您可以使用Amazon X-Ray以可视化状态机的组件、确定性能瓶颈以及对导致错误的请求进行故障排除。状态机将跟踪数据发送到 X-Ray,X-Ray 会处理数据以生成服务地图和可搜索的跟踪摘要。

在为状态机启用了 X-Ray 后,您可以在 Step Functions 中执行请求时跟踪这些请求,总而言之AmazonX-Ray 可用的区域。这将为您详细介绍整个 Step Functions 请求。Step Functions 将向 X-Ray 发送跟踪以执行状态机,即使跟踪 ID 没有被上游服务传递。您可以使用 X-Ray 服务地图查看请求的延迟,包括任何Amazon与 X-Ray 集成的服务。您还可以配置采样规则,以告知 X-Ray 根据您指定的标准以哪种采样率记录哪些请求。

当状态机未启用 X-Ray 且上游服务未传递跟踪 ID 时,Step Functions 将不会向 X-Ray 发送跟踪以执行状态机。但是,如果跟踪 ID 由上游服务传递,Step Functions 会将跟踪发送到 X-Ray 以执行状态机。

您可以使用Amazon X-Ray在支持两者的区域中使用 Step Functions。请参阅Step FunctionsX-Ray端点和配额页面,了解有关 X-Ray 和 Step Functions 的区域支持的信息。

X-Ray 和 Step Functions 组合配额

您可以将数据添加到跟踪中长达七天,然后查询追溯到三十天的跟踪数据,即 X-Ray 存储跟踪数据的时间长度。你的追踪将受到 X-Ray 配额的限制。除了其他配额外,X-Ray 为 Step Functions 状态机提供了 100KB 的最小保证跟踪大小。如果向 X-Ray 提供了超过 100KB 的跟踪数据,这可能会导致跟踪冻结。请参阅X-Ray 端点和配额页面了解有关 X-Ray 的其他配额的更多信息。

设置和配置

创建状态机时启用 X-Ray 追踪

您可以在创建新状态机时启用 X-Ray 追踪,方法是选择启用 X-Ray 跟踪指定详细信页.

  1. 打开 Step Functions 控制台并选择创建状态机.

  2. 在存储库的定义状态机页面,选择使用代码段创作要么从模板开始. 如果选择运行示例项目,则无法在创建过程中启用 X-Ray 追踪,并且需要在创建状态机后启用 X-Ray 追踪。请参阅在现有状态机中启用 X-Ray有关更多信息。

    选择下一步

  3. 在存储库的指定详细信页面上,配置状态机。

  4. 选择启用 X-Ray 跟踪.

    您的 Step Functions 状态机现在将跟踪发送到 X-Ray 进行状态机执行。

    注意

    如果您选择使用现有 IAM 角色,则应确保允许 X-Ray 写入操作。

在现有状态机中启用 X-Ray

要在现有状态机中启用 X-Ray:

  1. 在 Step Functions 控制台中,选择要为其启用跟踪的状态机。

  2. 选择 Edit (编辑)

  3. 选择启用 X-Ray 跟踪.

    你会看到一条通知,告诉你你可能需要进行额外的更改。

    注意

    当您为现有状态机启用 X-Ray 时,必须确保拥有 IAM 策略,该策略授予 X-Ray 执行跟踪的足够权限。您可以手动添加一个,也可以生成一个。有关更多信息,请参阅的 IAM 策略部分X-Ray.

  4. (可选)为状态机自动生成新角色以包含 X-Ray 权限。

  5. 选择 Save (保存)

配置 Step Functions 的 X-Ray 跟踪

首次运行启用了 X-Ray 追踪的状态机时,它将使用 X-Ray 跟踪的默认配置值。Amazon X-Ray不会为发送到应用程序的每个请求收集数据。相反,它会为统计数据显著数量的请求收集数据。默认情况是每秒记录第一个请求,以及任何额外请求的 5%。每秒一个请求是容器。这可确保只要服务正在处理请求,就会每秒至少记录一个跟踪。5% 是对超出容器尺寸的额外请求进行采样的比率

为避免在您入门时产生服务费用,保守做法是使用默认采样率。您可以配置 X-Ray 以修改默认采样规则,并配置基于服务或请求的属性应用采样的其他规则。

例如,您可能希望禁用采样并跟踪对修改状态或处理用户帐户或交易的调用的所有请求。对于量非常大的只读调用,例如后台轮询、运行状况检查或连接维护,您采用较低的采样率仍可获取足够的数据来了解出现的问题。

要为状态机配置采样规则,请执行以下操作:

  1. 转至X-Ray Console.

  2. 选择 Sampling (采样)

  3. 要创建规则,请选择 Create sampling rule (创建采样规则)

    要编辑规则,请选择规则的名称。

    要删除规则,请选择一条规则并使用 Actions (操作) 菜单来删除它。

现有抽样规则的某些部分,例如名称和优先级,无法更改。相反,请添加或克隆现有规则,进行所需的更改,然后使用新规则。

有关 X-Ray 采样规则以及如何配置各种参数的详细信息,请参阅在 X-Ray 控制台中配置采样规则.

概念

X-Ray 控制台

您可以使用 Amazon X-Ray 控制台查看您的应用程序所服务的请求的服务地图和跟踪。在为状态机启用 X-Ray 收集的详细信息时,您可以访问控制台以查看它收集的详细信息。

请参阅查看 X-Ray 控制台了解有关如何访问 X-Ray 控制台以执行状态机的信息。

有关 X-Ray 控制台的详细信息,请参阅X-Ray 控制台文.

区段、子区段和跟踪

一个记录有关向状态机发出请求的信息。它包含状态机执行的工作等信息,还可能包含子分段提供有关下游呼叫的信息。

一个跟踪收集单个请求生成的所有分段。

采样

为确保高效跟踪并为应用程序所服务的请求提供代表性样本,X-Ray 应用了取样算法来确定追踪哪些请求。这可以通过编辑抽样规则进行更改。

指标

对于状态机,X-Ray 将计量调用时间、状态转换时间、Step Functions 的总执行时间以及此执行时间的差异。您可以通过 X-Ray 控制台访问此信息。

分析

这些区域有:Amazon X-RayAnalytics 控制台是解释跟踪数据的交互式工具。您可以通过单击与当前跟踪集关联的指标和字段的图表和面板,使用越来越精细的筛选条件细化活动的数据集。这使您可以分析状态机的运行情况,并快速找到并识别性能问题。

有关 X-Ray Analytics 的详细信息,请与Amazon X-Ray分析控制台

Step Functions 服务集成和 X-Ray

其中的部分Amazon与 Step Functions 集成的服务提供了Amazon X-Ray通过在请求中添加跟踪标头、运行 X-Ray 守护程序、做出采样决策以及将跟踪数据上传到 X-Ray 的方式。其他人必须使用Amazon X-RaySDK。有些还不支持 X-Ray 集成。使用 Step Functions 的服务集成时,必须使用 X-Ray 集成以提供完整的跟踪数据

支持原生 X-Ray

与原生 X-Ray 支持的服务集成包括:

需要检测

需要的服务集成X-Ray 检测

  • Amazon Elastic Container Service

  • Amazon Batch

  • Amazon Fargate

仅限客户端跟踪

其他服务集成不支持 X-Ray 跟踪。但是,仍然可以收集客户端跟踪:

  • Amazon DynamoDB

  • Amazon EMR

  • Amazon SageMaker

  • Amazon CodeBuild

  • Amazon Glue

查看 X-Ray 控制台

X-Ray 从服务以分段形式接收数据。X-Ray 将具有共同请求的分段分组为跟踪。X-Ray 处理跟踪以生成服务图,服务图提供您的应用程序的可视化表示形式。

启动状态机执行后,可以 X-Ray 过选择X-Ray 跟踪图中的链接执行细节部分。


        X-Ray 跟踪

在为状态机启用 X-Ray 后,可以在 X-Ray 控制台中查看其执行的跟踪信息。

查看 Step Functions 的 X-Ray 跟踪信息

以下步骤说明启用 X-Ray 并运行执行后,您可以在控制台中看到什么类型的信息。的 X-Ray 跟踪回调模式示例(Amazon SQS、Amazon SNS,Lambda) 显示示例项目。

跟踪

执行完成后,你可以导航到 X-Ray 控制台,在那里你会看到 X-Ray跟踪页. 这将显示服务图的概述以及状态机的跟踪和区段信息。


        X-Ray 跟踪

服务地图

X-Ray 控制台中的服务地图可帮助您识别出现错误的服务、连接具有高延迟的服务或查看不成功请求的跟踪。


        X-Ray 跟踪

在跟踪地图中,您可以选择服务节点以查看对该节点的请求,或选择两个节点之间的边缘以查看经历该连接的请求。在这里,WaitForCallBack已选择节点,您可以查看有关其执行和响应状态的其他信息。


        X-Ray 跟踪

你可以看到 X-Ray 服务映射与状态机的关联。步骤 Functions 调用的每个服务集成都有一个服务映射节点,前提是它支持 X-Ray。


        X-Ray 跟踪

细分和子区段

一个跟踪是集合由单个请求生成。每个分段提供资源的名称、有关请求的详细信息以及有关所完成工作的详细信息。在存储库的跟踪页面上,您可以看到区段以及如果展开了相应的子区段。您可以选择分段或子分段以查看有关它的详细信息。

选择每个选项卡以查看区段和子区段信息的显示方式。

Overview of Segments

此状态机的区段和子区段概述。服务映射上的每个节点都有不同的区段。


              分段
View segment detail

选择分段将提供资源的名称、有关请求的详细信息以及有关所完成工作的详细信息。


              分段细节
View subsegment detail

分段可以将关于已完成工作的数据细分为子分段。选择子区段可以查看更精细的时间信息和详细信息。子分段可以包含有关调用的其他详细信息。Amazon服务、外部 HTTP API 或 SQL 数据库。


              子分段详细信息

分析

这些区域有:Amazon X-Ray 分析console 是一种用于解释跟踪数据的交互式工具。你可以使用它更轻松地了解状态机的运行情况。借助该控制台,您可以通过交互式响应时间图表和时间序列图表探索、分析和直观地显示跟踪。这可以帮助您快速找到性能和延迟问题。

您可以通过单击与当前跟踪集关联的指标和字段的图表和面板,使用越来越精细的筛选条件细化活动的数据集。


        分析

配置

您可以在 X-Ray 控制台中配置采样和加密选项。

Sampling

选择采样以查看有关采样率和配置的详细信息。您可以更改采样规则以控制您记录的数据量,并修改采样行为以满足您的具体要求。


              采样
Encryption

选择加密以修改加密设置。您可以使用默认设置,其中 X-Ray 会加密跟踪和静态日期,或者如果需要,可以选择客户主密钥。标准Amazon KMS收费适用于后一种情况。

如果追踪地图或服务地图中没有数据怎么办?

如果您已启用 X-Ray,但在 X-Ray 控制台中看不到任何数据,请检查:

  • 您的 IAM 角色设置正确,以允许写入 X-Ray。

  • 采样规则允许对数据进行采样。

  • 由于在应用新创建或修改的 IAM 角色之前可能会有很短的延迟,因此在几分钟后再次查看跟踪或服务映射。

  • 如果您明白找不到数据在 “X-Ray 跟踪” 面板中,检查IAM 账户设置并确保Amazon Security Token Service已为预期区域启用。有关更多信息,请参阅 。IAM 用户指南.