

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

# 将 CloudWatch 指标与 Amazon Batch
<a name="using_cloudwatch_metrics"></a>

Amazon Batch 向亚马逊发布任务指标， CloudWatch 用于监控任务在生命周期中的状态转换和持续时间。 Amazon Batch 在`AWS/Batch`命名空间下发布这些指标，不收取额外费用。

指标是在任务在状态之间转换以及任务尝试完成时发出的。状态转换指标跟踪有多少任务进入给定状态，持续时间指标跟踪任务或任务尝试在状态之间移动所花费的时间。使用这些指标来构建 CloudWatch仪表板、设置 CloudWatch 警报并为工作负载建立性能基准。有关更多信息，请参阅《*亚马逊 CloudWatch 用户指南》[中的[https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/working_with_metrics.html](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)使用 CloudWatch指标](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)和使用 CloudWatch警报*。

单节点任务的报告行为[数组作业](array_jobs.md)和[Multi-node 并行作业](multi-node-parallel-jobs.md)不同于单节点任务。下表中的 “**报告行为**” 列指出了这些情况，并详细[阵列作业和多节点并行作业的指标](#cloudwatch_metrics_array_mnp)描述了阵列和 MNP 行为。

**注意**  
Amazon Batch 针对提交到任务队列的任务发出这些指标。所有指标均以该`JobQueueName`维度发布。您可以使用此维度按提交任务的任务队列对指标数据进行分组和筛选。

**重要**  
这些指标是在尽力而为的基础上提供的，旨在进行监控和观察，而不是计费、审计或对账。由于任务状态转换是由事件驱动的，因此偶尔会漏掉某个指标。例如，如果作业开始运行，然后几乎立即成功或失败，则在作业达到其终端`RUNNING`状态之前，可能无法观察到向该状态的过渡。在这种情况下， Amazon Batch 不会发布与该任务的`RUNNING`过渡相关的指标。设计任何警报或仪表板以容忍偶尔的间隙，不要依赖从这些指标得出的精确计数。

## Amazon Batch CloudWatch 指标
<a name="cloudwatch_metrics_available"></a>

Amazon Batch 将以下任务指标发送到 CloudWatch。状态过渡指标使用`Count`单位，持续时间指标使用`Milliseconds`单位。

以下指标适用于任何类型的 Amazon Batch 作业。


| 指标 | 说明 | 单位 | 报告行为 | 
| --- | --- | --- | --- | 
| `JobsSubmitted` | 提交到任务队列的任务数量。 | 计数 | 首次提交任务（进入`SUBMITTED`状态）时发出。对于数组作业，该值是数组的大小。 | 
| `JobsMovedToPending` | 移至该`PENDING`州的工作岗位数量。 | 计数 | 当任务移至`PENDING`时发出。一项任务通常是在依赖任务`PENDING`时等待的。 | 
| `JobsMovedToRunnable` | 移至该`RUNNABLE`州的工作岗位数量。 | 计数 | 当任务移至时发出`RUNNABLE`，可以是第一次移动，也可以是重试的结果。 | 
| `JobsMovedToStarting` | 移至该`STARTING`州的工作岗位数量。 | 计数 | 当任务移至`STARTING`时发出。 | 
| `JobsMovedToRunning` | 移至该`RUNNING`州的工作岗位数量。 | 计数 | 当任务移至`RUNNING`时发出。 | 
| `JobsMovedToSucceeded` | 成功完成的任务数量。 | 计数 | 当任务移至`SUCCEEDED`时发出。 | 
| `JobsMovedToFailed` | 移至该`FAILED`州的工作岗位数量。 | 计数 | 当任务进入`FAILED`状态时发出。包括已取消或终止的工作。 | 
| `JobsCancelled` | 被取消的任务数量。 | 计数 | 当作业由于取消请求而进入`FAILED`状态时（在作业开始运行之前）发出。 | 
| `JobsTerminated` | 终止的任务数量。 | 计数 | 当任务由于终止请求而进入`FAILED`状态时发出。 | 
| `JobsRetried` | 重试的任务尝试次数。 | 计数 | 当任务尝试失败且任务返回重试时发出。`RUNNABLE` | 
| `JobSubmittedToRunnableDuration` | 工作从`SUBMITTED`变为所需的时间`RUNNABLE`。 | 毫秒 | 任务进入`RUNNABLE`时发出。对于阵列子作业，它衡量从提交父作业到子作业变为之后的时间`RUNNABLE`。 | 
| `JobAttemptStartingToRunningDuration` | 作业尝试在开始运行`STARTING`之前所花费的时间。 | 毫秒 | 任务进入`RUNNING`时每次尝试都会发出。重试的任务每次尝试到达时都会发出一个数据点。`RUNNING` | 
| `JobAttemptExecutionDuration` | 任务尝试运行所花费的时间，从尝试开始到停止的时间来衡量。 | 毫秒 | 任务尝试完成时发出，从尝试开始运行到停止的时间进行测量。 | 
| `JobAttemptDuration` | 任务尝试持续的总时间，从任务进入`STARTING`到尝试结束来衡量。 | 毫秒 | 尝试结束时发出。当任务达到终端状态（`SUCCEEDED`或`FAILED`）或返回重试状态时，`RUNNABLE`尝试就会结束。 | 

以下指标仅适用于 Amazon Batch 计算任务。


| 指标 | 说明 | 单位 | 报告行为 | 
| --- | --- | --- | --- | 
| `JobSubmittedToFirstStartingDuration` | 从工作到第一次工作`SUBMITTED`所花费的时间`STARTING`. | 毫秒 | 在第一次尝试时发出，也就是任务首次进入`STARTING`时发出。 | 
| `JobAttemptRunnableToStartingDuration` | 作业尝试在开始`RUNNABLE`之前所花费的时间。 | 毫秒 | 任务进入`STARTING`时发出。 | 

以下指标仅适用于[中的服务职位 Amazon Batch](service-jobs.md)。


| 指标 | 说明 | 单位 | 报告行为 | 
| --- | --- | --- | --- | 
| `JobsMovedToScheduled` | 移至该`SCHEDULED`州的工作岗位数量。 | 计数 | 在任务首次移至时为服务任务发出`SCHEDULED`，每次在抢占`SCHEDULED`之后作业移动到时再次发出。 | 
| `JobSubmittedToFirstScheduledDuration` | 从一项服务工作到首次完成`SUBMITTED`所花费的时间`SCHEDULED`. | 毫秒 | 当任务首次移至`SCHEDULED`时，为服务任务发出。 | 
| `JobAttemptRunnableToScheduledDuration` | 任务尝试在迁移到`RUNNABLE`之前所花费的时间`SCHEDULED`。 | 毫秒 | 当服务作业移至时，每次尝试都会发出`SCHEDULED`，既包括任务首次移至`SCHEDULED`，也包括每次在抢占`SCHEDULED`之后移动。 | 
| `JobAttemptScheduledToStartingDuration` | 服务作业尝试在首次移至`SCHEDULED`和迁移到之间所花费的时间`STARTING`。 | 毫秒 | 当任务从移动到时为服务任务发出`SCHEDULED`。`STARTING` | 
| `JobsPreempted` | 被抢占的工作岗位数量。 | 计数 | 每次抢占任务时为配额管理任务发出。 | 

## 阵列作业和多节点并行作业的指标
<a name="cloudwatch_metrics_array_mnp"></a>

Amazon Batch 代表[数组作业](array_jobs.md)并[Multi-node 并行作业](multi-node-parallel-jobs.md)作为跟踪一个或多个*子*任务的*父*作业。因此，单个逻辑任务不会被计算两次，根据任务类型，仅从这两条记录中的一条中 Amazon Batch 发出指标。

数组作业  
阵列父任务不发出指标，除了。`JobsSubmitted`取而代之的是，每个阵列子任务在任务生命周期中都会独立发出这些指标，因此指标计数反映的是子任务的数量，而不是提交的阵列任务的数量。  
该`JobsSubmitted`指标在提交时为数组父任务发出一次，其值是数组的大小（子任务的数量）。例如，提交一个包含 1,000 个子项的数组作业会发布一个值为的单个`JobsSubmitted`数据点`1000`。  
用于衡量提交时间的持续时间指标（例如`JobSubmittedToRunnableDuration`）是针对每个阵列子任务发出的，并衡量从提交阵列父级的时间到该子项到达相关状态的时间。

Multi-node 并行 (MNP) 工作  
MNP 指标从 MNP 父任务发出，它代表整个作业。单个 MNP 子（节点）任务不会发出这些指标。因此，无论使用多少节点，一个 MNP 任务都会被计算一次。

## Amazon Amazon Batch CloudWatch 指标
<a name="cloudwatch_metrics_dimensions"></a>

Amazon Batch CloudWatch 使用单一维度的工作指标:`JobQueueName`. 所有指标数据均按提交作业的任务队列的名称进行分组和筛选。

## 视图 Amazon Batch CloudWatch 指标
<a name="viewing-batch-cloudwatch-metrics"></a>

您可以在控制台中查看 Amazon Batch 任务指标，也可以在 Amazon Batch 控制 CloudWatch 台的`AWS/Batch`命名空间下查看任务指标。

**重要**  
在控制台中显示指标会产生标准 CloudWatch 费用。您可以随时关闭指标查看功能以停止收费。有关更多信息，请参阅[亚马逊 CloudWatch 定价](https://www.amazonaws.cn/cloudwatch/pricing/)。

**在批量指标仪表板上查看指标 **

1. 打开 [Amazon Batch 控制台](https://console.amazonaws.cn/batch)。

1. 在导航窗格中，选择**控制面板**，然后选择**批量指标**选项卡。

1. 开启**显示 CloudWatch 指标**。

1. 在 “**筛选指标” 下**，选择最多五个**任务队列**和**要绘制图表的**指标。

1. 选择 “**应用过滤器” **。控制台为每个指标显示一个图表，每个任务队列显示一行。

1. 要重新开始，请选择 “**清除筛选器” ** 以删除您的选择，或选择 “**重置筛选器” ** 以恢复默认值。

1. （可选）要重复使用任务队列和指标的组合，请使用已保存的筛选器集。过滤器集按您的 Amazon 用户首选项保存，因此它们在会话中持续存在，您最多可以保存五个。从 “**已保存的筛选器集” ** 下拉列表和 “**清除筛选器” ** 按钮上的箭头菜单中对其进行管理，然后选择以下任一选项：
   + **保存 **-选择您的任务队列和指标，然后选择 “**另存为新筛选器集**”。输入一个唯一的名称，并有选择地将其标记为默认名称。
   + **应用 **-从 “**已保存的筛选器集” ** 下拉列表中选择一组，然后选择 “**应用筛选器” **。
   + **更新 **-选定一个集合后，更改您的选择并选择**更新当前过滤器集**。
   + **设为默认 **-选定一组后，选择**设置**，然后选择**设为默认**。当您打开选项卡时，默认集合会自动加载。
   + **删除 **-选定一个集合后，选择 “**删除当前过滤器集” **。

**查看单个任务队列的指标 **

1. 在导航窗格中，选择**作业队列**，然后选择任务队列。

1. 选择**监控**选项卡。

1. 开启**显示 CloudWatch 指标**。

1. 在**状态过渡指标**、**生命周期事件指标**和**持续时间指标**部分中，使用每个指标选择器来选择要绘制哪些指标。

显示的指标仅限于此任务队列。您的选择将按任务队列保存，并在会话中持续保存。

要直接使用这些指标 CloudWatch （例如，构建仪表板或设置警报），请打开[CloudWatch 控制台](https://console.amazonaws.cn/cloudwatch)并选择`AWS/Batch`命名空间。