本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于 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
将结果记录为 1 或 0,指示是否已取消工作流。值 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 提供以下指标:
指标 |
描述 |
---|---|
|
计划决策任务的时刻与工作人员选取并启动该决策任务的时刻之间的时间间隔,以毫秒为单位。 CloudWatch 单位: 维度: 有效统计数据: |
|
启动活动任务的时刻与决策任务结束的时刻之间的时间间隔,以毫秒为单位。 CloudWatch 单位: 维度: 有效统计数据: |
|
已完成的决策任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
PendingTasks |
针对某个特定任务列表在 1 分钟间隔内待办任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已启动但在结束时已超时的决策任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
启动工作流的时刻与工作流结束的时刻之间的时间,以毫秒为单位。 CloudWatch 单位: 维度: 有效统计数据: |
|
取消的工作流程的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
完成的工作流程的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
继续作为新工作流程的工作流程计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
失败的工作流的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
终止的工作流的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
出于任何原因而超时的工作流程的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
计划活动的时刻与该活动结束的时刻之间的时间间隔,以毫秒为单位。 CloudWatch 单位: 维度: 有效统计数据: |
|
计划活动任务的时刻与该活动任务启动的时刻之间的时间间隔,以毫秒为单位。 CloudWatch 单位: 维度: 有效统计数据: |
|
启动活动任务的时刻与活动任务结束的时刻之间的时间间隔,以毫秒为单位。 CloudWatch 单位: 维度: 有效统计数据: |
|
取消的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已完成的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
失败的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已计划但在结束时已超时的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已计划但在启动时已超时的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已启动但在结束时已超时的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已启动但因检测信号超时而发生超时的活动任务的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
已被限制的请求的计数。 CloudWatch 单位: 维度: 有效统计数据: |
|
每秒可用请求的计数。 维度: 有效统计数据: |
|
每秒请求的计数。 CloudWatch 单位: 维度: 有效统计数据: |
ConsumedLimit |
已使用的一般限额。 维度: |
|
每秒允许进入存储桶中的请求的计数。 维度: 有效统计数据: |
ProvisionedLimit |
为账户预置的一般限额。 维度: |
维度 |
描述 |
---|---|
|
按照工作流或活动在其中运行的 Amazon SWF 域来筛选数据。 |
|
按照活动类型的名称来筛选数据。 |
|
按照活动类型的版本来筛选数据。 |
|
按照此工作流执行的工作流类型的名称来筛选数据。 |
|
按照此工作流执行的工作流类型的版本来筛选数据。 |
|
按照指定 API 名称的 API 来筛选数据。 |
|
按照指定决策名称来筛选数据。 |
|
按照指定任务列表名称来筛选数据。 |
|
按照任务列表的分类来筛选数据。决定任务列表的值为“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