

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

# 監控 EMR Serverless 應用程式和任務
<a name="app-job-metrics"></a>

透過 EMR Serverless 的 Amazon CloudWatch 指標，您可以接收 1 分鐘的 CloudWatch 指標並存取 CloudWatch 儀表板，以存取 EMR Serverless 應用程式的near-real-time操作和效能。

EMR Serverless 每分鐘將指標傳送至 CloudWatch。EMR Serverless 會在應用程式層級以及任務、工作者類型和capacity-allocation-type層級發出這些指標。

若要開始使用，請使用 EMR Serverless [ GitHub 儲存庫中提供的 EMR Serverless](https://github.com/aws-samples/emr-serverless-samples/tree/main/cloudformation/emr-serverless-cloudwatch-dashboard/) CloudWatch 儀表板範本並進行部署。

**注意**  
[EMR Serverless 互動式工作負載](interactive-workloads.md)僅啟用應用程式層級監控，並具有新的工作者類型維度 `Spark_Kernel`。若要監控和偵錯互動式工作負載，請從 [EMR Studio 工作區中](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-debug.html#emr-studio-debug-serverless)存取日誌和 Apache Spark UI。

## 監控指標
<a name="app-job-metrics-versions"></a>

**重要**  
我們正在重組指標顯示以新增 `ApplicationName`和 `JobName`做為維度。對於 7.10 版和更新版本，不會再更新較舊的指標。對於低於 7.10 的 EMR 版本，舊版指標仍然可用。

**目前維度**

下表說明 `AWS/EMR Serverless` 命名空間中可用的 EMR Serverless 維度。


**EMR Serverless 指標的維度**  

| 維度 | Description | 
| --- | --- | 
| ApplicationId | 使用應用程式 ID 篩選 EMR Serverless 應用程式的所有指標。 | 
| ApplicationName | 使用 名稱篩選 EMR Serverless 應用程式的所有指標。如果未提供名稱，或包含非 ASCII 字元，則會發佈為 **【未指定】**。 | 
| JobId | 篩選任務執行 ID 的 EMR Serverless 的所有指標。 | 
| JobName | 使用 名稱篩選 EMR Serverless 任務執行的所有指標。如果未提供名稱，或包含非 ASCII 字元，則會發佈為 **【未指定】**。 | 
| WorkerType | 篩選指定工作者類型的所有指標。例如，您可以篩選 Spark 任務的 `SPARK_DRIVER`和 `SPARK_EXECUTORS` 。 | 
| CapacityAllocationType | 篩選指定容量分配類型的所有指標。例如，您可以篩選 `PreInitCapacity`的預先初始化容量和其他`OnDemandCapacity`項目。 | 

## 應用程式層級監控
<a name="app-level-metrics"></a>

您可以使用 Amazon CloudWatch 指標監控 EMR Serverless 應用程式層級的容量使用量。您也可以設定單一顯示器來監控 CloudWatch 儀表板中的應用程式容量用量。


**EMR Serverless 應用程式指標**  

| 指標 | Description | 單位 | 維度 | 
| --- | --- | --- | --- | 
| MaxCPUAllowed |  應用程式允許的 CPU 上限。  | vCPU | ApplicationId, ApplicationName | 
| MaxMemoryAllowed |  應用程式允許的記憶體上限，以 GB 為單位。  | GB (GB) | ApplicationId, ApplicationName | 
| MaxStorageAllowed |  應用程式允許的最大儲存體，以 GB 為單位。  | GB (GB) | ApplicationId, ApplicationName | 
| CPUAllocated |  配置vCPUs 總數。  | vCPU | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| IdleWorkerCount |  工作者閒置總數。  | 計數 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| MemoryAllocated |  配置的總記憶體，以 GB 為單位。  | GB (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| PendingCreationWorkerCount |  待建立的工作者總數。  | 計數 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| RunningWorkerCount |  應用程式正在使用的工作者總數。  | 計數 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| StorageAllocated |  配置的總磁碟儲存體，以 GB 為單位。  | GB (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| TotalWorkerCount |  可用的工作者總數。  | 計數 | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 

## 任務層級監控
<a name="job-level-metrics"></a>

Amazon EMR Serverless Amazon CloudWatch 每一分鐘會將下列任務層級指標傳送至 。您可以存取依任務執行狀態彙總任務執行的指標值。每個指標的單位都是*計數*。


**EMR Serverless 任務層級指標**  

| 指標 | Description | 維度 | 
| --- | --- | --- | 
| SubmittedJobs | 處於已提交狀態的任務數量。 | ApplicationId, ApplicationName | 
| PendingJobs | 處於待定狀態的任務數量。 | ApplicationId, ApplicationName | 
| ScheduledJobs | 處於排程狀態的任務數量。 | ApplicationId, ApplicationName | 
| RunningJobs | 處於執行中狀態的任務數量。 | ApplicationId, ApplicationName | 
| SuccessJobs | 處於成功狀態的任務數量。 | ApplicationId, ApplicationName | 
| FailedJobs | 處於失敗狀態的任務數量。 | ApplicationId, ApplicationName | 
| CancellingJobs | 處於取消狀態的任務數量。 | ApplicationId, ApplicationName | 
| CancelledJobs | 處於已取消狀態的任務數量。 | ApplicationId, ApplicationName | 

您可以使用引擎特定應用程式 UIs 監控引擎特定指標，以執行和完成 EMR Serverless 任務。當您存取執行中任務的 UI 時，即時應用程式 UI 會顯示即時更新。當您存取已完成任務的 UI 時，會顯示持久性應用程式 UI。

**執行任務**

對於執行中的 EMR Serverless 任務，請存取提供引擎特定指標的即時界面。您可以使用 Apache Spark UI 或 Hive Tez UI 來監控和偵錯任務。若要存取這些 UIs，請使用 EMR Studio 主控台或透過 請求安全 URL 端點 AWS Command Line Interface。

**已完成的任務**

對於您已完成的 EMR Serverless 任務，請使用 Spark 歷史記錄伺服器或持久性 Hive Tez UI 來存取 Spark 或 Hive 任務執行的任務詳細資訊、階段、任務和指標。若要存取這些 UIs，請使用 EMR Studio 主控台，或透過 請求安全 URL 端點 AWS Command Line Interface。

## 任務工作者層級監控
<a name="job-worker-level-metrics"></a>

Amazon EMR Serverless 會將`AWS/EMRServerless`命名空間和`Job Worker Metrics`指標群組中可用的下列任務工作者層級指標傳送至 Amazon CloudWatch。EMR Serverless 會在任務層級、工作者類型和capacity-allocation-type層級的任務執行期間，收集個別工作者的資料點。您可以使用 `ApplicationId`做為維度，以監控屬於相同應用程式的多個任務。

**注意**  
若要在 Amazon CloudWatch 主控台中檢視指標時，檢視 EMR Serverless 任務所使用的 CPU 和記憶體總數，請使用統計資料總和和和期間 1 分鐘。


**EMR Serverless 任務工作者層級指標**  

| 指標 | Description | 單位 | 維度 | 
| --- | --- | --- | --- | 
| WorkerCpuAllocated | 任務執行中為工作者配置的 vCPU 核心總數。 | vCPU | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerCpuUsed | 工作執行中工作者使用的 vCPU 核心總數。 | vCPU | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerMemoryAllocated | 任務執行中為工作者配置的總記憶體，以 GB 為單位。 | GB (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerMemoryUsed | 工作者在任務執行中所使用的總記憶體，以 GB 為單位。 | GB (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerEphemeralStorageAllocated | 任務執行中為工作者配置的暫時性儲存的位元組數。 | GB (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerEphemeralStorageUsed | 工作者在任務執行中使用的暫時性儲存的位元組數。 | GB (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerStorageReadBytes | 作業執行中工作者從儲存體讀取的位元組數。 | 位元組 | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 
| WorkerStorageWriteBytes | 任務執行中從工作者寫入儲存體的位元組數。 | 位元組 | JobId、JobName、ApplicationId、ApplicationName、WorkerType 和 CapacityAllocationType | 

下列步驟說明如何存取各種類型的指標。

------
#### [ Console ]

**使用主控台存取您的應用程式 UI**

1. 透過[主控台入門](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/getting-started.html#gs-console)中的指示，導覽至 EMR Studio 上的 EMR Serverless 應用程式。

1. 若要存取執行中任務的引擎特定應用程式 UIs和日誌：

   1. 選擇`RUNNING`狀態為 的任務。

   1. 在**應用程式詳細資訊**頁面上選取任務，或導覽至任務**的任務詳細資訊**頁面。

   1. 在**顯示 UI** 下拉式功能表下，選擇 **Spark UI** 或 **Hive Tez UI**，以導覽至任務類型的應用程式 UI。

   1. 若要存取 Spark 引擎日誌，請導覽至 Spark UI 中的**執行器**索引標籤，然後選擇驅動程式的**日誌**連結。若要存取 Hive 引擎日誌，請在 **Hive Tez UI 中選擇適當 DAG 的日誌**連結。

1. 若要存取已完成任務的引擎特定應用程式 UIs和日誌：

   1. 選擇`SUCCESS`狀態為 的任務。

   1. 在應用程式**的應用程式詳細資訊**頁面上選取任務，或導覽至任務**的任務詳細資訊**頁面。

   1. 在**顯示 UI** 下拉式功能表下，選擇 **Spark 歷史記錄伺服器**或**持久性 Hive Tez UI**，以導覽至任務類型的應用程式 UI。

   1. 若要存取 Spark 引擎日誌，請導覽至 Spark UI 中的**執行器**索引標籤，然後選擇驅動程式的**日誌**連結。若要存取 Hive 引擎日誌，請在 **Hive Tez UI 中選擇適當 DAG 的日誌**連結。

------
#### [ AWS CLI ]

**使用 存取您的應用程式 UI AWS CLI**
+ 若要產生 URL，以使用 存取應用程式 UI 來執行和完成的任務，請呼叫 `GetDashboardForJobRun` API。

  ```
  aws emr-serverless get-dashboard-for-job-run /
  --application-id <application-id> /
  --job-run-id <job-id>
  ```

  您產生的 URL 有效期為一小時。

------