

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# EMR Serverless アプリケーションとジョブのモニタリング
<a name="app-job-metrics"></a>

EMR Serverless の Amazon CloudWatch メトリクスを使用することにより、1 分間の CloudWatch メトリクスを受け取り、CloudWatch ダッシュボードにアクセスして、EMR Serverless アプリケーションのパフォーマンスとオペレーションにほぼリアルタイムでアクセスできます。

EMR Serverless は CloudWatch に毎分メトリクスを送信します。EMR Serverless は、これらのメトリクスをアプリケーションレベルだけでなく、ジョブ、ワーカータイプ、容量の割り当てタイプのレベルで出力します。

開始するには、[EMR Serverless GitHub リポジトリ](https://github.com/aws-samples/emr-serverless-samples/tree/main/cloudformation/emr-serverless-cloudwatch-dashboard/)に用意されている EMR Serverless CloudWatch ダッシュボードテンプレートを使用してデプロイします。

**注記**  
[EMR Serverless インタラクティブワークロード](interactive-workloads.md)では、アプリケーションレベルのモニタリングのみが有効化されており、新しいワーカータイプのディメンション `Spark_Kernel` があります。インタラクティブワークロードをモニタリングおよびデバッグするには、[EMR Studio Workspace 内](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 メトリクスのディメンション**  

| ディメンション | 説明 | 
| --- | --- | 
| ApplicationId | アプリケーション ID を使用して、EMR Serverless アプリケーションのすべてのメトリクスをフィルタリングします。 | 
| ApplicationName | その名前を使用して、EMR Serverless アプリケーションのすべてのメトリクスをフィルタリングします。名前が指定されていない場合、または ASCII 以外の文字が含まれている場合、**[指定なし]** として発行されます。 | 
| JobId | EMR Serverless ジョブ実行 ID のすべてのメトリクスをフィルタリングします。 | 
| JobName | その名前を使用して、EMR Serverless ジョブ実行のすべてのメトリクスをフィルタリングします。名前が指定されていない場合、または ASCII 以外の文字が含まれている場合、**[指定なし]** として発行されます。 | 
| WorkerType | 特定のワーカータイプのすべてのメトリクスをフィルタリングします。例えば、Spark ジョブの `SPARK_DRIVER` と `SPARK_EXECUTORS` をフィルタリングできます。 | 
| CapacityAllocationType | 特定の容量割り当てタイプのすべてのメトリクスをフィルタリングします。例えば、事前に初期化された容量と、その他すべての `OnDemandCapacity` に対して `PreInitCapacity` をフィルタリングできます。 | 

## アプリケーションレベルのモニタリング
<a name="app-level-metrics"></a>

Amazon CloudWatch メトリクスを使用して、EMR Serverless アプリケーションレベルで容量の使用状況をモニタリングできます。CloudWatch ダッシュボードでアプリケーション容量の使用状況をモニタリングするように 1 つのディスプレイを設定することもできます。


**EMR Serverless アプリケーションメトリクス**  

| メトリクス | 説明 | Unit | ディメンション | 
| --- | --- | --- | --- | 
| MaxCPUAllowed |  アプリケーションに許容される CPU の最大数。  | vCPU | ApplicationId, ApplicationName | 
| MaxMemoryAllowed |  アプリケーションに許容されるメモリの最大 GB 数。  | ギガバイト数 (GB) | ApplicationId, ApplicationName | 
| MaxStorageAllowed |  アプリケーションに許容されるストレージの最大 GB 数。  | ギガバイト数 (GB) | ApplicationId, ApplicationName | 
| CPUAllocated |  割り当てられた vCPU の合計数。  | vCPU | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| IdleWorkerCount |  アイドル状態のワーカーの合計数。  | カウント | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| MemoryAllocated |  割り当てられたメモリの合計 GB 数。  | ギガバイト数 (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| PendingCreationWorkerCount |  作成保留中のワーカーの合計数。  | カウント | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| RunningWorkerCount |  アプリケーションで使用されているワーカーの合計数。  | カウント | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| StorageAllocated |  割り当てられたディスクストレージの合計 GB 数。  | ギガバイト数 (GB) | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 
| TotalWorkerCount |  使用可能なワーカーの合計数。  | カウント | ApplicationId, ApplicationName, WorkerType, CapacityAllocationType | 

## ジョブレベルのモニタリング
<a name="job-level-metrics"></a>

Amazon EMR Serverless は、1 分ごとに次のジョブレベルのメトリクスを Amazon CloudWatch に送信します。ジョブ実行集計のメトリクス値は、ジョブ実行状態別にアクセスできます。各メトリクスの単位は*カウント*です。


**EMR Serverless ジョブレベルのメトリクス**  

| メトリクス | 説明 | ディメンション | 
| --- | --- | --- | 
| SubmittedJobs | 送信済み状態のジョブの数。 | ApplicationId, ApplicationName | 
| PendingJobs | 保留中状態のジョブの数。 | ApplicationId, ApplicationName | 
| ScheduledJobs | スケジュールされた状態のジョブの数。 | ApplicationId, ApplicationName | 
| RunningJobs | 実行中状態のジョブの数。 | ApplicationId, ApplicationName | 
| SuccessJobs | 成功状態のジョブの数。 | ApplicationId, ApplicationName | 
| FailedJobs | 失敗状態のジョブの数。 | ApplicationId, ApplicationName | 
| CancellingJobs | キャンセル中状態のジョブの数。 | ApplicationId, ApplicationName | 
| CancelledJobs | キャンセル済み状態のジョブの数。 | ApplicationId, ApplicationName | 

エンジン固有のアプリケーション UI を使用して、実行中の EMR Serverless ジョブと完了した EMR Serverless ジョブのエンジン固有のメトリクスをモニタリングできます。実行中のジョブの UI にアクセスすることにより、リアルタイムの更新が反映されたライブアプリケーション UI が表示されます。完了したジョブの UI にアクセスすることにより、永続アプリケーション UI が表示されます。

**ジョブの実行**

実行中の EMR Serverless ジョブでは、エンジン固有のメトリクスを示すリアルタイムインターフェイスにアクセスします。Apache Spark UI または Hive Tez UI のいずれかを使用して、ジョブをモニタリングおよびデバッグできます。これらの UI にアクセスするには、EMR Studio コンソールを使用するか、 AWS Command Line Interfaceで安全な URL エンドポイントをリクエストします。

**完了したジョブ**

完了した EMR Serverless ジョブについては、Spark History Server または Persistent Hive Tez UI を使用して、Spark または Hive ジョブ実行のジョブの詳細、ステージ、タスク、メトリクスにアクセスします。これらの UI にアクセスするには、EMR Studio コンソールを使用するか、 AWS Command Line Interfaceで安全な URL エンドポイントをリクエストします。

## ジョブワーカーレベルのモニタリング
<a name="job-worker-level-metrics"></a>

Amazon EMR Serverless は、`AWS/EMRServerless` 名前空間および `Job Worker Metrics` メトリクスグループで利用可能な以下のジョブワーカーレベルのメトリクスを Amazon CloudWatch に送信します。EMR Serverless は、ジョブレベル、ワーカータイプ、容量割り当てタイプのレベルでジョブの実行中に個別のワーカーからデータポイントを収集します。`ApplicationId` をディメンションとして使用して、同じアプリケーションに属する複数のジョブをモニタリングできます。

**注記**  
Amazon CloudWatch コンソールでメトリクスを表示するときに EMR Serverless ジョブが使用する CPU とメモリの合計を表示するには、Statistic as Sum and Period as 1 minutes を使用します。


**EMR Serverless ジョブワーカーレベルのメトリクス**  

| メトリクス | 説明 | Unit | ディメンション | 
| --- | --- | --- | --- | 
| WorkerCpuAllocated | ジョブ実行でワーカーに割り当てられた vCPU コアの合計数。 | vCPU | JobId、JobName、ApplicationId、ApplicationName、WorkerType、および CapacityAllocationType | 
| WorkerCpuUsed | ジョブ実行でワーカーによって使用されている vCPU コアの合計数。 | vCPU | JobId、JobName、ApplicationId、ApplicationName、WorkerType、および CapacityAllocationType | 
| WorkerMemoryAllocated | ジョブ実行でワーカーに割り当てられたメモリの合計 GB 数。 | ギガバイト数 (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType、および CapacityAllocationType | 
| WorkerMemoryUsed | ジョブ実行でワーカーによって使用されるメモリの合計 GB 数。 | ギガバイト数 (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType、および CapacityAllocationType | 
| WorkerEphemeralStorageAllocated | ジョブ実行でワーカーに割り当てられたエフェメラルストレージのバイト数。 | ギガバイト数 (GB) | JobId、JobName、ApplicationId、ApplicationName、WorkerType、および CapacityAllocationType | 
| WorkerEphemeralStorageUsed | ジョブ実行でワーカーによって使用されるエフェメラルストレージのバイト数。 | ギガバイト数 (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. 実行中ジョブのエンジン固有のアプリケーション UI とログにアクセスするには: 

   1. `RUNNING` ステータスのジョブを選択します。

   1. **[アプリケーションの詳細]** ページでジョブを選択するか、ジョブの **[ジョブの詳細]** ページに移動します。

   1. **[UI を表示]** ドロップダウンメニューで、**[Spark UI]** または **[Hive Tez UI]** のいずれかを選択して、ジョブタイプのアプリケーション UI に移動します。

   1. Spark エンジンログにアクセスするには、Spark UI の **[エグゼキュター]** タブに移動し、ドライバーの**ログ**リンクを選択します。Hive エンジンログにアクセスするには、Hive Tez UI で適切な DAG の**ログ**リンクを選択します。

1. 完了したジョブのエンジン固有のアプリケーション UI とログにアクセスするには: 

   1. `SUCCESS` ステータスのジョブを選択します。

   1. アプリケーションの **[アプリケーションの詳細]** ページでジョブを選択するか、ジョブの **[ジョブの詳細]** ページに移動します。

   1. **[UI を表示]** ドロップダウンメニューで、**[Spark 履歴サーバー]** または **[Persistent Hive Tez UI]** のいずれかを選択して、ジョブタイプのアプリケーション UI に移動します。

   1. Spark エンジンログにアクセスするには、Spark UI の **[エグゼキュター]** タブに移動し、ドライバーの**ログ**リンクを選択します。Hive エンジンログにアクセスするには、Hive Tez UI で適切な DAG の**ログ**リンクを選択します。

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

**を使用してアプリケーション UI にアクセスするには AWS CLI**
+ 実行中のジョブと完了したジョブでアプリケーション UI にアクセスするために使用できる URL を生成するには、`GetDashboardForJobRun` API を呼び出します。

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

  生成した URL は 1 時間有効です。

------