本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊监控 Step Functions 指标 CloudWatch
监控是维护 Amazon 解决方案的可靠性、可用性和性能的重要组成部分。 Amazon Step Functions 您应该从所使用的 Amazon 服务中收集尽可能多的监控数据,以便可以调试多点故障。
在开始监控 Step Functions 之前,您应创建一个监控计划,回答以下问题:
- 
            监控目的是什么? 
- 
            您将监控哪些资源? 
- 
            监控这些资源的频率如何? 
- 
            您将使用哪些监控工具? 
- 
            谁负责执行监控任务? 
- 
            出现错误时应通知谁? 
下一步是为您的环境中的正常 性能设置基准。为此,在不同时间和不同负载条件下测量性能。监控 Step Functions 时,请考虑存储历史监控数据。此类数据可为您提供与当前性能数据进行比较的基准,用于确定正常性能模式和性能异常,以及设计解决问题的方法。
我们建议监控活动和任务失败以建立基准。当绩效超出基准指标时,请设置警报,以便您可以研究根本原因。
要建立基准,您至少应监控以下指标:
- 
            ActivitiesStarted
- 
            ActivitiesTimedOut
- 
            ExecutionsStarted
- 
            ExecutionsTimedOut
的 Step Functions 指标 CloudWatch
Step Functions 向亚马逊提供以下类型的指标 CloudWatch。您可以使用这些指标来跟踪状态机和活动,以及设置有关阈值的警报。您可以使用查看指标 Amazon Web Services Management Console。
非 ASCII 名称和日志记录
Step Functions 对于状态机、执行、活动和标签接受包含非 ASCII 字符的名称。由于此类字符会 CloudWatch 阻止亚马逊记录数据,因此我们建议您仅使用 ASCII 字符,这样您就可以跟踪 Step Functions 的指标。
CloudWatch 指标交付
系统将以最大努力传输 CloudWatch 指标。
无法保证指标的完整性和及时性。可能返回特定请求的数据点,其时间戳晚于实际处理请求的时间。数据点在通过之前可能会延迟一分钟 CloudWatch,或者可能根本无法传送。 CloudWatch请求指标可以让你近乎实时地了解状态机的执行情况。这并不代表会完整记录所有与执行相关的指标。
根据此特征的最大努力性质,在账单和成本管理控制面板
报告时间间隔的指标
Step Functions 的某些 Step Function CloudWatch s 指标是时间间隔,始终以毫秒为单位进行测量。这些指标通常对应于可以设置状态机、活动和 Lambda 函数超时的执行的各个阶段,并且带有说明性名称。
例如,ActivityRunTime 指标测量活动在开始执行后,完成活动所需的时间。您可以为同一个时段设置超时值。
在 CloudWatch 控制台中,如果选择平均值作为时间间隔指标的显示统计数据,则可以获得最佳结果。
报告计数的指标
某些 Step Function  CloudWatch  s 指标将结果报告为计数。例如,ExecutionsFailed 记录失败的状态机执行次数。
Step Functions 为每个状态机执行发出两个 ExecutionsStarted 指标。这会使ExecutionsStarted指标的SampleCount统计数据在每次执行状态机时显示值为 2。 SampleCount 统计数据显示执行ExecutionStarted=0完成的时间ExecutionStarted=1和时间。
提示
对于在 CloudWatch 控制台中报告计数的指标,我们建议选择 Sum 作为显示统计数据。
执行指标
AWS/States 命名空间包括所有 Step Functions 执行的以下指标。这些是适用于某个区域中您的账户的无维度指标。
| 指标 | 说明 | 
|---|---|
| OpenExecutionCount | 当前打开的执行 的大致数量,即您的账户中当前正在进行的工作流程数量。 目的是深入了解您的工作流程何时接近最大执行限制,以避免在调用 
 | 
| OpenExecutionLimit | 打开的执行的最大数量。有关更多信息,请参阅 与账户相关的配额。 此限制不适用于快速工作流程。 | 
所有状态机的执行指标
所有状态机都会发出指标。只有在执行受到限制的情况下,才会发出 ExecutionThrottled 指标。这些指标将包括 StateMachineArn,用于识别特定的状态机。
| 指标 | 说明 | 
|---|---|
| ExecutionTime | 执行开始时间与关闭时间之间的时间间隔(毫秒)。 | 
| ExecutionThrottled | 受到限制的 StateEntered事件和重试的数量。这与StateTransition限制有关。有关更多信息,请参阅 与状态限制相关的配额。 | 
| ExecutionsAborted | 已中止或终止的执行的数量。 | 
| ExecutionsFailed | 已失败的执行的数量。 | 
| ExecutionsStarted | 已启动的执行的数量。 | 
| ExecutionsSucceeded | 成功完成的执行的数量。 | 
| ExecutionsTimedOut | 因任意原因超时的执行的数量。 | 
快速工作流的执行指标
AWS/States 命名空间包括 Step Functions 快速工作流执行的以下指标。
| 指标 | 说明 | 
|---|---|
| ExpressExecutionMemory | 快速工作流消耗的总内存。 | 
| ExpressExecutionBilledDuration | 快速工作流的收费时长。 | 
| ExpressExecutionBilledMemory | 快速工作流程收费的内存消耗量。 | 
标准工作流的Redrive执行指标
redrive执行状态机时,Step Functions 会发出以下指标。
对于所有redriven执行,都会发出 Executions* 指标。例如,假设redriven执行中止。该执行将同时发出 RedrivenExecutionsAborted 和 ExecutionsAborted 的非零数据点。
| 指标 | 说明 | 
|---|---|
| ExecutionsRedriven | redriven执行的数量。 | 
| RedrivenExecutionsAborted | 取消或终止的redriven执行的数量。 | 
| RedrivenExecutionsTimedOut | 因任意原因超时的redriven执行的数量。 | 
| RedrivenExecutionsSucceeded | 成功完成的redriven执行的数量。 | 
| RedrivenExecutionsFailed | 失败的redriven执行的数量。 | 
Step Functions 执行指标的维度
| 维度 | 说明 | 
|---|---|
| StateMachineArn | 所涉执行的状态机的 Amazon 资源名称 (ARN)。 | 
使用版本的执行维度
| 维度 | 说明 | 
|---|---|
| StateMachineArn | 由版本启动执行的状态机的 Amazon 资源名称 (ARN)。 | 
| Version | 用于启动执行的状态机版本。 | 
使用别名的执行维度
| 维度 | 说明 | 
|---|---|
| StateMachineArn | 由别名启动执行的状态机的 Amazon 资源名称 (ARN)。 | 
| Alias | 用于启动执行的状态机别名。 | 
映射运行指标
AWS/States命名空间包括所有 Step Functions 映射运行的以下指标。这些是适用于某个区域中您的账户的无维度指标。
| 指标 | 说明 | 
|---|---|
| ApproximateOpenMapRunCount | 您账号中当前打开的 Map Runs 正在进行的大致数量。 有了这个指标,你可以在接近时采取行动 OpenMapRunLimit,以避免积压的 Map Runs。 要在您接近时发出警报 OpenMapRunLimit,我们建议使用阈值为 900 或更高的上限统计数据,因为默认值OpenManRunLimit为 1,000 次地图。 | 
| OpenMapRunLimit | 打开地图的最大运行次数。 有关更多信息,请参阅 与账户相关的配额。 | 
| ApproximateMapRunBacklogSize | 积压的地图运行的大致数量。积压的地图跑步将在MapRunStarted活动开始时等待,直到打开的地图跑步总数少于配额。 当 Map Run 积压时,物品数量将为零。在 Map Run 打开并开始读取其输入后,计数将增加。 | 
版本与别名功能的资源计数指标
AWS/States 命名空间包括状态机版本与别名功能计数的以下指标。
版本与别名功能的资源计数指标维度
| 维度 | 说明 | 
|---|---|
| ResourceArn | 使用别名或版本的状态机的 Amazon 资源名称 (ARN)。 | 
活动指标
AWS/States 命名空间包括 Step Functions 活动的以下指标。
| 指标 | 说明 | 
|---|---|
| ActivityRunTime | 活动开始时间与关闭时间之间的时间间隔(毫秒)。 | 
| ActivityScheduleTime | 活动保持在计划状态的时间间隔(毫秒)。 | 
| ActivityTime | 活动计划时间与关闭时间之间的时间间隔(毫秒)。 | 
| ActivitiesFailed | 失败活动的数量。 | 
| ActivitiesHeartbeatTimedOut | 因检测信号超时而超时的活动的数量。 | 
| ActivitiesScheduled | 计划活动的数量。 | 
| ActivitiesStarted | 已启动的活动的数量。 | 
| ActivitiesSucceeded | 成功完成的活动的数量。 | 
| ActivitiesTimedOut | 关闭时超时的活动的数量。 | 
Step Functions 活动指标维度
| 维度 | 说明 | 
|---|---|
| 
 | 活动的 ARN。 | 
Lambda 函数指标
AWS/States命名空间包括以下 Lambda 函数的指标,这些指标在任务状态定义的资源字段中直接引用。您可能会在旧版状态机中找到这些指标。在现代状态机中,我们建议使用优化的 Lambda 集成,它会发出服务集成指标。
| 指标 | 说明 | 
|---|---|
| LambdaFunctionRunTime | Lambda 函数开始时间与关闭时间之间的时间间隔(毫秒)。 | 
| LambdaFunctionScheduleTime | Lambda 函数保持在计划状态的时间间隔(毫秒)。 | 
| LambdaFunctionTime | Lambda 函数计划时间与关闭时间之间的时间间隔(毫秒)。 | 
| LambdaFunctionsFailed | 已失败的 Lambda 函数的数量。 | 
| LambdaFunctionsScheduled | 已计划的 Lambda 函数的数量。 | 
| LambdaFunctionsStarted | 已启动的 Lambda 函数的数量。 | 
| LambdaFunctionsSucceeded | 成功完成的 Lambda 函数的数量。 | 
| LambdaFunctionsTimedOut | 关闭时超时的 Lambda 函数的数量。 | 
Step Functions Lambda 函数指标维度
| 维度 | 说明 | 
|---|---|
| 
 | Lambda 函数的 ARN。 | 
注意
对于在 
                Resource 字段中指定 Lambda 函数 ARN 的 Task 状态,会发出 Lambda 函数指标。而使用 "Resource": "arn:aws:states:::lambda:invoke" 的 Task 状态会发出服务集成指标。有关更多信息,请参阅 使用 Step F Amazon Lambda unctions 调用函数。
服务集成指标
AWS/States 命名空间包括 Step Functions 服务集成的以下指标。有关更多信息,请参阅 将服务与 Step Functions 集成。
| 指标 | 说明 | 
|---|---|
| ServiceIntegrationRunTime | 服务任务开始时间与关闭时间之间的时间间隔(毫秒)。 | 
| ServiceIntegrationScheduleTime | 服务任务保持在计划状态的时间间隔(毫秒)。 | 
| ServiceIntegrationTime | 服务任务计划时间与关闭时间之间的时间间隔(毫秒)。 | 
| ServiceIntegrationsFailed | 已失败的服务任务数。 | 
| ServiceIntegrationsScheduled | 计划的服务任务数。 | 
| ServiceIntegrationsStarted | 已启动的服务任务数。 | 
| ServiceIntegrationsSucceeded | 已成功完成的服务任务数。 | 
| ServiceIntegrationsTimedOut | 关闭时超时的服务任务数。 | 
Step Functions 服务集成指标的维度
| 维度 | 说明 | 
|---|---|
| 
 | 集成服务的资源 ARN。 | 
服务指标
AWS/States 命名空间包括 Step Functions 服务的以下指标。
| 指标 | 说明 | 
|---|---|
| ThrottledEvents | 已被限制的请求的计数。 | 
| ProvisionedBucketSize | 每秒可用请求的计数。 | 
| ProvisionedRefillRate | 每秒可进入存储桶中的请求的计数。 | 
| ConsumedCapacity | 每秒请求的计数。 | 
Step Functions 服务指标的维度
| 维度 | 说明 | 
|---|---|
| 
 | 筛选数据以显示状态转换指标。 | 
API 指标
AWS/States 命名空间包括 Step Functions API 的以下指标。
| 指标 | 说明 | 
|---|---|
| ThrottledEvents | 已被限制的请求的计数。 | 
| ProvisionedBucketSize | 每秒可用请求的计数。 | 
| ProvisionedRefillRate | 每秒可进入存储桶中的请求的计数。 | 
| ConsumedCapacity | 每秒请求的计数。 | 
Step Functions API 指标的维度
| 维度 | 说明 | 
|---|---|
| 
 | 按照指定 API 名称的 API 来筛选数据。 | 
在中查看 Step Functions 指标 CloudWatch
您可以使用 CloudWatch 控制台查看 Step Functions 的执行情况、活动、函数和服务集成的指标。
- 
                登录 Amazon Web Services Management Console 并打开 CloudWatch 控制台。 
- 
                选择指标,在全部指标选项卡上选择状态。 如果您近期运行了任何执行,最多可以看到四种类型的指标: - 
                        执行指标 
- 
                        活动函数指标 
- 
                        Lambda 函数指标 
- 
                        服务集成指标 
 
- 
                        
- 
                选择指标类型以查看指标列表。 - 
                        要按指标名称或对指标进行排序 StateMachineArn,请使用列标题。 
- 
                        要查看指标图表,请选中列表上指标旁边的复选框。您可以使用图表视图上方的时间范围控件更改图表参数。 您可以使用相对或绝对值 (特定天和时间) 选择自定义时间范围。您还可以使用下拉列表将值显示为线条、堆叠区域或数字(值)。 
- 
                        要查看有关图表的详细信息,请悬停在图表下方显示的指标颜色代码上,以显示指标详细信息。 
 
- 
                        
有关使用 CloudWatch 指标的更多信息,请参阅亚马逊 CloudWatch 用户指南中的使用亚马逊 CloudWatch 指标。
在中为 Step Functions 指标设置警报 CloudWatch
您可以使用 Amazon  CloudWatch  警报来执行操作。例如,如果您希望知道何时达到警报阈值,您可以设置警报以发送通知到 Amazon SNS 主题,或者在 StateMachinesFailed 指标上升到超过特定阈值时发送电子邮件。
在指标上设置警报
- 
                    登录 Amazon Web Services Management Console 并打开 CloudWatch 控制台。 
- 
                    选择指标,在全部指标选项卡上选择状态。 如果您近期运行了任何执行,最多可以看到四种类型的指标: - 
                            执行指标 
- 
                            活动函数指标 
- 
                            Lambda 函数指标 
- 
                            服务集成指标 
 
- 
                            
- 
                    选择指标类型以查看指标列表。 
- 
                    选择一个指标,然后选择绘成图表的指标。 
- 
                    选择列表中某个指标旁边的钟形图标,以显示创建警报页面。 
- 
                    为警报阈值和操作输入值,然后选择创建警报。 
有关设置和使用 CloudWatch 警报的更多信息,请参阅亚马逊 CloudWatch 用户指南中的创建亚马逊 CloudWatch 警报。