

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配 使用 CloudWatch 指標 AWS Batch
<a name="using_cloudwatch_metrics"></a>

AWS Batch 會將任務指標發佈至 Amazon CloudWatch，以便在任務生命週期期間監控任務的狀態轉換和持續時間。 會在`AWS/Batch`命名空間下 AWS Batch 免費發佈這些指標。

當任務嘗試完成時，指標會在狀態和 之間的任務轉換時發出。狀態轉換指標會追蹤有多少任務進入指定狀態，而持續時間指標會追蹤任務或任務嘗試在狀態之間移動所花費的時間。使用這些指標來建置 CloudWatch 儀表板、設定 CloudWatch 警示，並為您的工作負載建立效能基準。如需詳細資訊，請參閱《Amazon [ CloudWatch 使用者指南》中的使用 CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)[和使用 CloudWatch 警示 CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。 *Amazon CloudWatch *

[陣列任務](array_jobs.md) 和 的報告行為與單一節點任務[多節點平行任務](multi-node-parallel-jobs.md)不同。下表中的**報告行為**欄會記下這些案例，並詳細說明[陣列任務和多節點平行任務的指標](#cloudwatch_metrics_array_mnp)陣列和 MNP 行為。

**注意**  
AWS Batch 會針對提交至任務佇列的任務發出這些指標。所有指標都會以 `JobQueueName`維度發佈。您可以使用此維度，依已提交任務的任務佇列來分組和篩選指標資料。

**重要**  
這些指標以最佳方式提供，旨在監控和觀察，而不是計費、稽核或對帳。由於任務狀態轉換是事件驅動的，因此有時可能會遺漏指標。例如，如果任務開始執行，然後幾乎立即成功或失敗，則在任務達到其結束`RUNNING`狀態之前，可能不會觀察到轉換為 狀態。在這種情況下， AWS Batch 不會發出與該任務`RUNNING`轉換相關聯的指標。設計任何警示或儀表板，以容忍偶爾的差距，且不依賴從這些指標衍生的確切計數。

## AWS Batch CloudWatch 指標
<a name="cloudwatch_metrics_available"></a>

AWS Batch 會將下列任務指標傳送至 CloudWatch。狀態轉換指標使用 `Count` 單位，持續時間指標使用 `Milliseconds`單位。

無論類型為何，下列指標都適用於 AWS 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` 以重試時結束。 | 

下列指標僅適用於 AWS Batch 運算任務。


| 指標 | 說明 | 單位 | 報告行為 | 
| --- | --- | --- | --- | 
| `JobSubmittedToFirstStartingDuration` | 任務在 中第一次從 移至 `SUBMITTED` 的時間`STARTING`。 | 毫秒 | 任務第一次進入 時，在第一次嘗試時發出`STARTING`。 | 
| `JobAttemptRunnableToStartingDuration` | 任務嘗試開始`RUNNABLE`之前花費在 的時間。 | 毫秒 | 當任務進入 時發出`STARTING`。 | 

下列指標僅適用於 [中的服務任務 AWS 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>

AWS Batch 代表 [陣列任務](array_jobs.md)和 ，[多節點平行任務](multi-node-parallel-jobs.md)做為追蹤一或多個*子*任務的*父*任務。因此，單一邏輯任務不會計算兩次，根據任務類型， 只會從這兩個記錄之一 AWS Batch 發出指標。

陣列任務  
除了 之外，陣列父任務不會發出指標`JobsSubmitted`。相反地，每個陣列子任務都會在任務生命週期中移動時獨立發出這些指標，因此指標計數會反映子任務的數量，而不是提交的陣列任務數量。  
提交時，陣列父項任務會發出一次`JobsSubmitted`指標，其值為陣列的大小 （子任務的數量）。例如，提交具有 1，000 個子項的陣列任務會發佈值為 的單一`JobsSubmitted`資料點`1000`。  
每個陣列子任務會發出測量提交時間的持續時間指標，例如`JobSubmittedToRunnableDuration`，以及從提交陣列父項到該子系達到有問題狀態的期間指標。

多節點平行 (MNP) 任務  
MNP 指標會從 MNP 父任務發出，代表整體任務。個別 MNP 子 （節點） 任務不會發出這些指標。因此，無論 MNP 任務使用多少節點，都會計算一次。

## AWS Batch CloudWatch 指標的維度
<a name="cloudwatch_metrics_dimensions"></a>

AWS Batch CloudWatch 中的任務指標使用單一維度：`JobQueueName`。所有指標資料都會依提交任務的任務佇列名稱進行分組和篩選。

## View AWS Batch CloudWatch 指標
<a name="viewing-batch-cloudwatch-metrics"></a>

您可以在 AWS Batch 主控台或 `AWS/Batch` 命名空間下的 CloudWatch 主控台中檢視 AWS Batch 任務指標。

**重要**  
在主控台中顯示指標會產生標準 CloudWatch 費用。您可以隨時關閉指標檢視，以停止收費。如需詳細資訊，請參閱 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

**在批次指標儀表板上檢視指標**

1. 開啟 [AWS Batch 主控台](https://console.aws.amazon.com/batch)。

1. 在導覽窗格中，選擇**儀表板**，然後選擇**批次指標**索引標籤。

1. 開啟**顯示 CloudWatch 指標**。

1. 在**篩選指標**下，選取最多五個**任務佇列**和您要繪製圖形的**指標**。

1. 選擇**套用篩選條件**。主控台顯示每個指標一個圖形，每個任務佇列一行。

1. 若要重新開始，請選擇**清除篩選條件**以移除您的選擇，或選擇**重設篩選條件**以還原預設值。

1. （選用） 若要重複使用任務佇列和指標的組合，請使用已儲存的篩選條件集。篩選條件集會儲存到您的 AWS 使用者偏好設定，因此它們會跨工作階段持續存在，您最多可以儲存五個。從**儲存的篩選條件集**下拉式清單和**清除篩選條件**按鈕上的箭頭功能表管理它們，然後選擇下列任何一項：
   + **儲存** - 選取您的任務佇列和指標，然後選擇**另存為新的篩選條件集**。輸入唯一名稱，並選擇性地將其標記為預設值。
   + **套用** - 從**已儲存篩選條件集**下拉式清單中選擇集合，然後選擇**套用篩選條件**。
   + **更新** - 選取集合後，變更您的選擇，然後選擇**更新目前的篩選條件集合**。
   + **設為預設** - 選取集合後，選擇**設定**，然後選擇**設為預設**。當您開啟標籤時，預設集會自動載入。
   + **Delete** - 選取集合後，選擇**刪除目前的篩選條件集合**。

**檢視單一任務佇列的指標**

1. 在導覽窗格中，選擇**任務佇列**，然後選擇任務佇列。

1. 選擇 **Monitoring** (監控) 索引標籤。

1. 開啟**顯示 CloudWatch 指標**。

1. 在**狀態轉換指標**、**生命週期事件指標**和**持續時間指標**區段中，使用每個指標選擇器選擇要繪製的指標。

顯示的指標範圍限定於此任務佇列。您的選擇會依任務佇列儲存，並在工作階段間保留。

若要直接在 CloudWatch 中使用這些指標，例如建置儀表板或設定警示，請開啟 [CloudWatch 主控台](https://console.aws.amazon.com/cloudwatch)並選擇`AWS/Batch`命名空間。