用于 CloudWatch 的 Amazon SWF 指标 - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

用于 CloudWatch 的 Amazon SWF 指标

Amazon SWF 现在为 CloudWatch 提供了指标,您可以使用这些指标跟踪工作流和活动,并根据您选择的阈值设置警报。您可以使用 Amazon Web Services Management Console 查看指标。有关更多信息,请参阅使用 Amazon Web Services Management Console查看 CloudWatch 的 Amazon SWF 指标

Amazon SWF 指标的报告单位

报告时间间隔的指标

CloudWatch 的某些 Amazon SWF 指标是时间间隔,始终以毫秒为单位进行衡量。CloudWatch 单位以 Time 形式报告。这些指标通常对应于可以设置工作流程和活动超时的工作流程执行的各阶段,并具有类似的名称。

例如,DecisionTaskStartToCloseTime 指标度量决策任务开始执行之后直到完成所用的时间,该时间就是可为其设置 DecisionTaskStartToCloseTimeout 值的时间段。

要获得各工作流程阶段的总示意图和了解其在工作流程和活动生命周期内何时发生,请参阅 Amazon SWF 超时类型

报告计数的指标

CloudWatch 的某些 Amazon SWF 指标以计数的形式报告结果。例如,WorkflowsCanceled 将结果记录为 10,指示是否已取消工作流。值 0 并不表示未报告该指标,仅表示该指标描述的条件未出现。

在 CloudWatch 中报告 Count 的 CloudWatch 的某些 Amazon SWF 指标是每秒计数。例如,在 CloudWatch 中以 ProvisionedRefillRate 形式报告的 ProvisionedRefillRate 表示每秒请求 Count速率

对于计数指标,最小值和最大值将始终是 0 或 1,但平均值将是 0 到 1 范围内的一个值。

API 和决策事件指标

您可以在 CloudWatch 中监控 API 和决策事件,以深入了解您的使用情况和容量。请参阅 Amazon SWF 的工作原理 部分中的 deciders,以及 Amazon Simple Workflow Service API Reference 中的 Decision 主题。

您还可以监控这些限制,以便在接近 Amazon SWF 节流限制时发出警报。请参阅 Amazon SWF 节流限额,以了解这些限制及其默认设置的说明。这些限制旨在防止不正确的工作流占用过多的系统资源。要请求提高您的限制,请参阅:请求增加配额

作为最佳实践,您应将 CloudWatch 警报配置为 API 或决策事件容量的 60% 左右。这让您可以在启用 Amazon SWF 节流之前调整工作流或请求增加服务限制。根据您的调用的 burstiness,您可以配置不同警报,以便在接近您的服务限制时发出通知:

  • 如果您的流量有明显的峰值,请将警报设置为 ProvisionedBucketSize 限制的 60%。

  • 如果您的调用具有相对稳定的速率,请将相关 API 和决策事件的警报设置为 ProvisionedRefillRate 限制的 60%。

Amazon SWF 指标

Amazon SWF 提供以下指标:

指标

描述

DecisionTaskScheduleToStartTime

计划决策任务的时刻与工作人员选取并启动该决策任务的时刻之间的时间间隔,以毫秒为单位。

CloudWatch 单位:Time

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Average, Minimum, Maximum

DecisionTaskStartToCloseTime

启动活动任务的时刻与决策任务结束的时刻之间的时间间隔,以毫秒为单位。

CloudWatch 单位:Time

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Average, Minimum, Maximum

DecisionTasksCompleted

已完成的决策任务的计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

PendingTasks

针对某个特定任务列表在 1 分钟间隔内待办任务的计数。

CloudWatch 单位:Count

维度:Domain, TaskListName

有效统计数据:Sum

StartedDecisionTasksTimedOutOnClose

已启动但在结束时已超时的决策任务的计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

WorkflowStartToCloseTime

启动工作流的时刻与工作流结束的时刻之间的时间,以毫秒为单位。

CloudWatch 单位:Time

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Average, Minimum, Maximum

WorkflowsCanceled

取消的工作流程的计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

WorkflowsCompleted

完成的工作流程的计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

WorkflowsContinuedAsNew

继续作为新工作流程的工作流程计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

WorkflowsFailed

失败的工作流的计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

WorkflowsTerminated

终止的工作流的计数。

CloudWatch 单位:Count

维度:Cause, Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

WorkflowsTimedOut

出于任何原因而超时的工作流程的计数。

CloudWatch 单位:Count

维度:Domain, WorkflowTypeName, WorkflowTypeVersion

有效统计数据:Sum

ActivityTaskScheduleToCloseTime

计划活动的时刻与该活动结束的时刻之间的时间间隔,以毫秒为单位。

CloudWatch 单位:Time

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Average, Minimum, Maximum

ActivityTaskScheduleToStartTime

计划活动任务的时刻与该活动任务启动的时刻之间的时间间隔,以毫秒为单位。

CloudWatch 单位:Time

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Average, Minimum, Maximum

ActivityTaskStartToCloseTime

启动活动任务的时刻与活动任务结束的时刻之间的时间间隔,以毫秒为单位。

CloudWatch 单位:Time

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Average, Minimum, Maximum

ActivityTasksCanceled

取消的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

ActivityTasksCompleted

已完成的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

ActivityTasksFailed

失败的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

ScheduledActivityTasksTimedOutOnClose

已计划但在结束时已超时的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

ScheduledActivityTasksTimedOutOnStart

已计划但在启动时已超时的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

StartedActivityTasksTimedOutOnClose

已启动但在结束时已超时的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

StartedActivityTasksTimedOutOnHeartbeat

已启动但因检测信号超时而发生超时的活动任务的计数。

CloudWatch 单位:Count

维度:Domain, ActivityTypeName, ActivityTypeVersion

有效统计数据:Sum

ThrottledEvents

已被限制的请求的计数。

CloudWatch 单位:Count

维度:APIName, DecisionName

有效统计数据:Sum

ProvisionedBucketSize

每秒可用请求的计数。

维度:APIName, DecisionName

有效统计数据:Minimum

ConsumedCapacity

每秒请求的计数。

CloudWatch 单位:Count

维度:APIName, DecisionName

有效统计数据:Sum

ConsumedLimit

已使用的一般限额。

维度:GeneralLimitType

ProvisionedRefillRate

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

维度:APIName, DecisionName

有效统计数据:Minimum

ProvisionedLimit

为账户预置的一般限额。

维度:GeneralLimitType

维度

描述

Domain

按照工作流或活动在其中运行的 Amazon SWF 域来筛选数据。

ActivityTypeName

按照活动类型的名称来筛选数据。

ActivityTypeVersion

按照活动类型的版本来筛选数据。

WorkflowTypeName

按照此工作流执行的工作流类型的名称来筛选数据。

WorkflowTypeVersion

按照此工作流执行的工作流类型的版本来筛选数据。

APIName

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

DecisionName

按照指定决策名称来筛选数据。

TaskListName

按照指定任务列表名称来筛选数据。

TaskListClassification

按照任务列表的分类来筛选数据。决定任务列表的值为“D”,活动任务列表的值为“A”。

Amazon SWF 非 ASCII 资源名称和 CloudWatch 维度

Amazon SWF 允许在资源名称(如 TaskList 和 DomainName)中使用非 ASCII 字符。但是,CloudWatch 指标的维度值只能包含可打印的 ASCII 字符。为确保 Amazon SWF 使用与 CloudWatch 要求兼容的维度值,不符合这些要求的 Amazon SWF 资源名称将被转换并附加校验和,如下所示:

  • 任何非 ASCII 字符都将替换为 ?

  • 如有必要,输入字符串或转换后的字符串将被截断。这样可以确保在附加校验和时,新字符串的长度不会超过 CloudWatch 的最大长度。

  • 任何非 ASCII 字符都会转换为 ?,因此,转换前不同的某些 CloudWatch 指标维度值在转换后看起来可能会相同。为帮助区分这些值,资源名称中会添加一条下划线 (_),后面跟着原始资源名称的 SHA256 校验和的前 16 个字符。

转换示例:

  • test àpple 将转换为 test ?pple_82cc5b8e3a771d12

  • àòà 将转换为 ???_2fec5edbb2c05c22

  • 任务列表名称 àppléâpplè 都将转换为 ?ppl?,并将完全相同。附加校验和会返回不同的值,即 ?ppl?_f39a36df9d85a69d?ppl?_da3efb4f11dd0f7f

提示

您可以生成自己的 SHA256 校验和。例如,要使用 shasum 命令行工具,请执行以下操作:

echo -n "<the original resource name>" | shasum -a 256 | cut -c1-16