使用监控 Step Functions CloudWatch - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用监控 Step Functions CloudWatch

监控是维护 Amazon 解决方案的可靠性、可用性和性能的重要组成部分。 Amazon Step Functions 您应该从所使用的 Amazon 服务中收集尽可能多的监控数据,以便可以调试多点故障。在开始监控 Step Functions 之前,您应创建一个监控计划,回答以下问题:

  • 监控目的是什么?

  • 您将监控哪些资源?

  • 监控这些资源的频率如何?

  • 您将使用哪些监控工具?

  • 谁负责执行监控任务?

  • 出现错误时应通知谁?

下一步是为您的环境中的正常 性能设置基准。为此,在不同时间和不同负载条件下测量性能。监控 Step Functions 时,请考虑存储历史监控数据。此类数据可为您提供与当前性能数据进行比较的基准,用于确定正常性能模式和性能异常,以及设计解决问题的方法。

例如,使用 Step Functions,您可以监控有多少活动或 Amazon Lambda 任务由于心跳超时而失败。在性能低于您建立的基准时,您可能需要更改检测信号时间间隔。

要建立基准,您至少应监控以下指标:

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

  • LambdaFunctionsStarted

  • LambdaFunctionsTimedOut

以下各节介绍了 Step Functions 向亚马逊提供的指标 CloudWatch。您可以使用这些指标来跟踪状态机和活动,以及设置有关阈值的警报。您可以使用查看指标 Amazon Web Services Management Console。

报告时间间隔的指标

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

当前打开的执行的大致数量,即您的账户中当前正在进行的工作流程。

目的是深入了解您的工作流程何时接近最大执行限制,以避免在调用StartExecution或使用标准工作流程时RedriveExecutionExecutionLimitExceeded错。

该指标取决于活动的工作流状态转换,因此在较低的级别上,估计值可能与观察到的运行工作流程数量不一致。

OpenExecutionLimit

打开的最大执行次数。有关更多信息,请参阅与账户相关的配额

此限制不适用于 Express 工作流程。

带有版本或别名的状态机的执行指标

当您使用版本名运行状态机执行时,Step Functions 会发出以下指标。只有在执行受限的情况下,才会发出该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执行中止。该执行将同时发出 RedrivenExecutionsAbortedExecutionsAborted 的非零数据点。

指标 描述
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 命名空间包括状态机版本与别名功能计数的以下指标。

指标 描述
AliasCount

为状态机创建的别名数量。

您最多可以为每个状态机创建 100 个别名。

VersionCount

为状态机发布的版本数。

您最多可以发布 1000 个版本的状态机。

版本与别名功能的资源计数指标维度

维度 描述
ResourceArn

使用别名或版本的状态机的 Amazon 资源名称 (ARN)。

活动指标

AWS/States 命名空间包括 Step Functions 活动的以下指标。

指标 描述
ActivityRunTime 活动开始和关闭之间的间隔,以毫秒为单位。
ActivityScheduleTime 活动保持计划状态的时间间隔,以毫秒为单位。
ActivityTime 活动计划时间与活动结束时间之间的间隔,以毫秒为单位。
ActivitiesFailed 失败的活动数。
ActivitiesHeartbeatTimedOut 由于心跳超时而超时的活动数量。
ActivitiesScheduled 预定活动数量。
ActivitiesStarted 已启动的活动数。
ActivitiesSucceeded 成功完成的活动数量。
ActivitiesTimedOut 关闭时超时的活动数量。

Step Functions 活动指标维度

维度 描述

ActivityArn

活动的 ARN。

Lambda 函数指标

AWS/States 命名空间包括 Step Functions Lambda 函数的以下指标。

指标 描述
LambdaFunctionRunTime Lambda 函数启动和关闭之间的间隔,以毫秒为单位。
LambdaFunctionScheduleTime Lambda 函数保持计划状态的时间间隔,以毫秒为单位。
LambdaFunctionTime 调度 Lambda 函数的时间与其关闭之间的间隔,以毫秒为单位。
LambdaFunctionsFailed 失败的 Lambda 函数的数量。
LambdaFunctionsScheduled 计划的 Lambda 函数的数量。
LambdaFunctionsStarted 已启动的 Lambda 函数的数量。
LambdaFunctionsSucceeded 成功完成的 Lambda 函数的数量。
LambdaFunctionsTimedOut 关闭时超时的 Lambda 函数的数量。

Step Functions Lambda 函数指标维度

维度 描述

LambdaFunctionArn

Lambda 函数的 ARN。

注意

对于在 Resource 字段中指定 Lambda 函数 ARN 的 Task 状态,会发出 Lambda 函数指标。而使用 "Resource": "arn:aws:states:::lambda:invoke" 的 Task 状态会发出服务集成指标。有关更多信息,请参阅使用 Step Functions 调用 Lambda

服务集成指标

AWS/States 命名空间包括 Step Functions 服务集成的以下指标。有关更多信息,请参阅与其他服务 Amazon Step Functions 一起使用

指标 描述
ServiceIntegrationRunTime 服务任务启动和关闭之间的间隔,以毫秒为单位。
ServiceIntegrationScheduleTime 服务任务保持计划状态的时间间隔,以毫秒为单位。
ServiceIntegrationTime 从调度服务任务到服务任务关闭时间之间的间隔,以毫秒为单位。
ServiceIntegrationsFailed 失败的服务任务数。
ServiceIntegrationsScheduled 计划服务任务数。
ServiceIntegrationsStarted 已启动的服务任务数。
ServiceIntegrationsSucceeded 成功完成的服务任务数。
ServiceIntegrationsTimedOut 关闭时超时的服务任务数。

Step Functions 服务集成指标的维度

维度 描述

ServiceIntegrationResourceArn

集成服务的资源 ARN。

服务指标

AWS/States 命名空间包括 Step Functions 服务的以下指标。

指标 描述
ThrottledEvents

已被限制的请求数。

ProvisionedBucketSize

每秒可用请求数。

ProvisionedRefillRate

每秒允许进入存储桶的请求数。

ConsumedCapacity

每秒请求数。

Step Functions 服务指标的维度

维度 描述

ServiceName

筛选数据以显示状态转换指标。

API 指标

AWS/States 命名空间包括 Step Functions API 的以下指标。

指标 描述
ThrottledEvents

已被限制的请求数。

ProvisionedBucketSize

每秒可用请求数。

ProvisionedRefillRate

每秒允许进入存储桶的请求数。

ConsumedCapacity

每秒请求数。

Step Functions API 指标的维度

维度 描述

APIName

按照指定 API 名称的 API 来筛选数据。

尽力交付 CloudWatch 指标

系统将以最大努力传输 CloudWatch 指标。

无法保证指标的完整性和及时性。可能返回特定请求的数据点,其时间戳晚于实际处理请求的时间。数据点在通过之前可能会延迟一分钟 CloudWatch,或者可能根本无法传送。 CloudWatch请求指标可以让你近乎实时地了解状态机的执行情况。这并不代表会完整记录所有与执行相关的指标。

根据此特征的最大努力性质,在账单和成本管理控制面板提供的报告中可能有一个或多个访问请求不会出现在执行指标中。