EMR Serverless アプリケーションとジョブのモニタリング
EMR Serverless の Amazon CloudWatch メトリクスを使用すると、1 分間の CloudWatch メトリクスを受け取り、CloudWatch ダッシュボードにアクセスして、EMR Serverless アプリケーションのパフォーマンスとオペレーションをほぼリアルタイムで表示できます。
EMR Serverless は CloudWatch に毎分メトリクスを送信します。EMR Serverless は、これらのメトリクスをアプリケーションレベルだけでなく、ジョブ、ワーカータイプ、容量の割り当てタイプのレベルで出力します。
開始するには、EMR Serverless GitHub リポジトリ
注記
EMR Serverless インタラクティブワークロードでは、アプリケーションレベルのモニタリングのみが有効化されており、新しいワーカータイプのディメンション Spark_Kernel
があります。インタラクティブワークロードをモニタリングおよびデバッグするには、EMR Studio Workspace 内からログと Apache Spark UI を表示します。
以下の表は、AWS/EMRServerless
名前空間内で使用可能な EMR Serverless ディメンションを示しています。
ディメンション | 説明 |
---|---|
ApplicationId |
EMR Serverless アプリケーションのすべてのメトリクスをフィルタリングします。 |
JobId |
EMR Serverless ジョブ実行のすべてのメトリクスをフィルタリングします。 |
WorkerType |
特定のワーカータイプのすべてのメトリクスをフィルタリングします。例えば、Spark ジョブの |
CapacityAllocationType |
特定の容量割り当てタイプのすべてのメトリクスをフィルタリングします。例えば、事前に初期化された容量と、その他すべての |
アプリケーションレベルのモニタリング
Amazon CloudWatch メトリクスを使用して、EMR Serverless アプリケーションレベルで容量の使用状況をモニタリングできます。CloudWatch ダッシュボードでアプリケーション容量の使用状況をモニタリングするように 1 つのビューを設定することもできます。
メトリクス | 説明 | プライマリディメンション | セカンダリディメンション |
---|---|---|---|
CPUAllocated |
割り当てられた vCPU の合計数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
IdleWorkerCount |
アイドル状態のワーカーの合計数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
MaxCPUAllowed |
アプリケーションに許容される CPU の最大数。 |
ApplicationId |
該当なし |
MaxMemoryAllowed |
アプリケーションに許容されるメモリの最大 GB 数。 |
ApplicationId |
該当なし |
MaxStorageAllowed |
アプリケーションに許容されるストレージの最大 GB 数。 |
ApplicationId |
該当なし |
MemoryAllocated |
割り当てられたメモリの合計 GB 数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
PendingCreationWorkerCount |
作成保留中のワーカーの合計数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
RunningWorkerCount |
アプリケーションで使用されているワーカーの合計数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
StorageAllocated |
割り当てられたディスクストレージの合計 GB 数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
TotalWorkerCount |
使用可能なワーカーの合計数。 |
ApplicationId |
ApplicationId , WorkerType ,
CapacityAllocationType |
ジョブレベルのモニタリング
Amazon EMR Serverless は、1 分ごとに次のジョブレベルのメトリクスを Amazon CloudWatch に送信します。ジョブ実行集計のメトリクス値は、ジョブ実行状態別に表示できます。各メトリクスの単位はカウントです。
メトリクス | 説明 | プライマリディメンション |
---|---|---|
SubmittedJobs |
送信済み状態のジョブの数。 |
ApplicationId |
PendingJobs |
保留中状態のジョブの数。 |
ApplicationId |
ScheduledJobs |
スケジュールされた状態のジョブの数。 |
ApplicationId |
RunningJobs |
実行中状態のジョブの数。 |
ApplicationId |
SuccessJobs |
成功状態のジョブの数。 |
ApplicationId |
FailedJobs |
失敗状態のジョブの数。 |
ApplicationId |
CancellingJobs |
キャンセル中状態のジョブの数。 |
ApplicationId |
CancelledJobs |
キャンセル済み状態のジョブの数。 |
ApplicationId |
エンジン固有のアプリケーション 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 エンドポイントをリクエストします。
ジョブワーカーレベルのモニタリング
Amazon EMR Serverless は、AWS/EMRServerless
名前空間および Job Worker Metrics
メトリクスグループで利用可能な以下のジョブワーカーレベルのメトリクスを Amazon CloudWatch に送信します。EMR Serverless は、ジョブレベル、ワーカータイプ、容量割り当てタイプのレベルでジョブの実行中に個別のワーカーからデータポイントを収集します。ApplicationId
をディメンションとして使用して、同じアプリケーションに属する複数のジョブをモニタリングできます。
メトリクス | 説明 | 単位 | プライマリディメンション | セカンダリディメンション |
---|---|---|---|---|
WorkerCpuAllocated |
ジョブ実行でワーカーに割り当てられた vCPU コアの合計数。 |
なし | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerCpuUsed |
ジョブ実行でワーカーによって使用されている vCPU コアの合計数。 |
なし | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerMemoryAllocated |
ジョブ実行でワーカーに割り当てられたメモリの合計 GB 数。 |
ギガバイト数 (GB) | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerMemoryUsed |
ジョブ実行でワーカーによって使用されるメモリの合計 GB 数。 |
ギガバイト数 (GB) | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerEphemeralStorageAllocated |
ジョブ実行でワーカーに割り当てられたエフェメラルストレージのバイト数。 |
ギガバイト数 (GB) | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerEphemeralStorageUsed |
ジョブ実行でワーカーによって使用されるエフェメラルストレージのバイト数。 |
ギガバイト数 (GB) | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerStorageReadBytes |
ジョブ実行でワーカーがストレージから読み取るバイト数。 |
バイト | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
WorkerStorageWriteBytes |
ジョブ実行でワーカーからストレージに書き込まれたバイト数。 |
バイト | JobId |
ApplicationId 、WorkerType 、および CapacityAllocationType |
以下の手順では、さまざまなタイプのメトリクスを表示する方法について説明します。