

# Amazon CloudWatch メトリクスを使用した AWS Glue のモニタリング
<a name="monitoring-awsglue-with-cloudwatch-metrics"></a>

AWS Glue ジョブプロファイラーを使用して AWS Glue オペレーションをプロファイルおよびモニタリングできます。AWS Glue ジョブから raw データが収集され、ほぼリアルタイムの読み取り可能なメトリクスに加工されて、Amazon CloudWatch に保存されます。これらの統計は CloudWatch に保持されて集計されるため、履歴情報にアクセスしてアプリケーションの動作をより的確に把握できます。

**注記**  
 ジョブメトリクスを有効にし、CloudWatch カスタムメトリクスが作成されると、追加料金が発生することがあります。詳細については、「[Amazon CloudWatch の料金](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。

## AWS Glue メトリクスの概要
<a name="metrics-overview"></a>

AWS Glue を操作するときに、CloudWatch にメトリクスが送信されます。これらのメトリクスは、AWS Glue コンソール (推奨される方法)、CloudWatch コンソールダッシュボード、または AWS Command Line Interface (AWS CLI) で表示できます。

**AWS Glue コンソールダッシュボードを使ってメトリクスを表示するには**

ジョブのメトリクスの概要または詳細なグラフを表示したり、ジョブの実行の詳細なグラフを表示したりできます。

1. AWS マネジメントコンソール にサインインし、AWS Glue コンソール ([https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)) を開きます。

1. ナビゲーションペインで、**[ジョブ実行モニタリング]** を選択します。

1. **[Job の実行]** で **[アクション]** を選択して、現在実行中のジョブの停止、ジョブの表示、またはジョブのブックマークの巻き戻しを実行します。

1. ジョブを選択し、**[実行の詳細を表示する]** を選択すると、そのジョブ実行に関する追加情報が表示されます。

**CloudWatch コンソールダッシュボードを使用してメトリクスを表示するには**

メトリクスはまずサービスの名前空間ごとにグループ化され、次に各名前空間内のさまざまなディメンションの組み合わせごとにグループ化されます。

1. CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。

1. ナビゲーションペインで [**Metrics (メトリクス)**] を選択してください。

1. [**Glue**] 名前空間を選択します。

**AWS CLI を使ってメトリクスを表示するには**
+ コマンドプロンプトで、次のコマンドを使用します。

  ```
  1. aws cloudwatch list-metrics --namespace Glue
  ```

メトリクスは 30 秒ごとに AWS Glue から CloudWatch に報告され、CloudWatch メトリクスダッシュボードは 1 分ごとにそれらを表示するように設定されています。AWS Glue メトリクスは、以前に報告された値からデルタ値を表示します。必要に応じて、メトリクスのダッシュボードにより 30 秒の値が集計 (合計) され、直近 1 分間分の値を取得できます。

### Spark ジョブの AWS Glue メトリクス動作
<a name="metrics-overview-spark"></a>

 AWS Glue メトリクスは、スクリプトでの `GlueContext` の初期化時に有効になり、基本的には Apache Spark タスクの終了時にのみ更新されます。また、これまでに完了した Spark タスク全体の集計値を表します。

ただし、AWS Glue が CloudWatch に渡す Spark メトリクスは、一般的に報告された時点で現在の状態を表す絶対値です。それらは 30 秒ごとに AWS Glue から CloudWatch に報告され、一般的にメトリクスダッシュボードには直近 1 分間に受け取ったデータポイントの平均が表示されます。

すべての AWS Glue メトリクス名の前には、必ず次のいずれかの種類のプレフィックスが付きます。
+ `glue.driver.` – 名前がこのプレフィックスで始まるメトリクスは、Spark ドライバーのすべてのエグゼキュターから集計された AWS Glue メトリクスか、Spark ドライバーに対応する Spark メトリクスを表します。
+ `.`*executorId*`glue.` – *executorId* は、特定の Spark エグゼキュターの番号です。ログに表示されているエグゼキュータに対応します。
+ `glue.ALL.` – 名前がこのプレフィックスで始まるメトリクスは、すべての Spark エグゼキュターからの値を集計します。

## AWS Glue のメトリクス
<a name="awsglue-metrics"></a>

AWS Glue によって、プロファイルが作成され、次のメトリクスが 30 秒ごとに CloudWatch に送信され、AWS Glue メトリクスダッシュボードに 1 分に 1 回表示されます。


| メトリクス | 説明 | 
| --- | --- | 
| `glue.driver.aggregate.bytesRead` | すべてのエグゼキュターで実行され完了したすべての Spark タスクによるすべてのデータソースから読み取られたバイト数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: バイト<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />このメトリクスは、`glue.ALL.s3.filesystem.read_bytes` メトリクスと同様に使用できます。ただし、このメトリクスは Spark タスクの最後に更新され、S3 以外のデータソースも取得するという点が異なります。 | 
| `glue.driver.aggregate.elapsedTime` | ETL の経過時間 (ミリ秒単位) (ジョブのブートストラップ時間は含まれません)。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: ミリ秒<br />ジョブの実行に平均どのくらいの時間がかかるかを調べるために利用できます。<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.aggregate.numCompletedStages` | ジョブの完了したステージの数<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.aggregate.numCompletedTasks` | ジョブで完了したタスクの数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.aggregate.numFailedTasks` | 失敗したタスクの数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データを使用して、データ、クラスター、スクリプトの異常を示唆する可能性のある障害の増加に対するアラームを設定できます。 | 
| `glue.driver.aggregate.numKilledTasks` | 強制終了したタスクの数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.aggregate.recordsRead` | すべてのエグゼキュターで実行され完了したすべての Spark タスクによるすべてのデータソースから読み取られたレコードの数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />このメトリクスは、`glue.ALL.s3.filesystem.read_bytes` メトリクスと同様に使用できますが、このメトリクスは Spark タスクの最後に更新される点が異なります。 | 
| `glue.driver.aggregate.shuffleBytesWritten` | 前のレポート以降にデータをシャッフルするためにそれらのエグゼキュターにより書き込まれたバイト数 (直前の 1 分間にこの目的のために書き込まれたバイト数として AWS Glue メトリクスダッシュボードにより集計)。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: バイト<br />ジョブのデータシャッフル (大規模な結合、グループ化、再分割、合体) をモニタリングするために使用できます。<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.aggregate.shuffleLocalBytesRead` | 前のレポート以降にデータをシャッフルするためにそれらのエグゼキュターにより読み取られたバイト数 (直前の 1 分間にこの目的のために読み取られたバイト数として AWS Glue メトリクスダッシュボードにより集計)。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。<br />単位: バイト<br />ジョブのデータシャッフル (大規模な結合、グループ化、再分割、合体) をモニタリングするために使用できます。<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.BlockManager.disk.diskSpaceUsed_MB` | すべてのエグゼキュターで使用されたディスク領域のメガバイト数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (ゲージ)。<br />有効な統計: Average これは Spark メトリクスで、絶対値としてレポートされます。<br />単位: メガバイト<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.ExecutorAllocationManager.executors.numberAllExecutors` | アクティブに実行されているジョブエグゼキュターの数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (ゲージ)。<br />有効な統計: Average これは Spark メトリクスで、絶対値としてレポートされます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.ExecutorAllocationManager.executors.numberMaxNeededExecutors` | 現在の負荷を満たすために必要な (アクティブに実行中および保留中の) ジョブエグゼキュターの最大数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (ゲージ)。<br />有効な統計: Maximum。これは Spark メトリクスで、絶対値としてレポートされます。<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.jvm.heap.usage`<br />`glue.`*executorId*`.jvm.heap.usage`<br />`glue.ALL.jvm.heap.usage` | ドライバー、executorId により識別されるエグゼキュター、またはすべてのエグゼキュターに対する、このドライバー (スケール: 0～1) の JVM ヒープにより使用されるメモリの割合。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (ゲージ)。<br />有効な統計: Average これは Spark メトリクスで、絶対値としてレポートされます。<br />単位: パーセント<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.jvm.heap.used`<br />`glue.`*executorId*`.jvm.heap.used`<br />`glue.ALL.jvm.heap.used` | ドライバー、*executorId* によって特定されたエグゼキュター、またはすべてのエグゼキュターのために JVM ヒープが使用したメモリバイト数。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (ゲージ)。<br />有効な統計: Average これは Spark メトリクスで、絶対値としてレポートされます。<br />単位: バイト<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.s3.filesystem.read_bytes`<br />`glue.`*executorId*`.s3.filesystem.read_bytes`<br />`glue.ALL.s3.filesystem.read_bytes` | 前のレポート以降に、ドライバー、*executorId* によって特定されるエグゼキュター、またはすべてのエグゼキュターが Amazon S3 から読み取ったバイト数 (直前 1 分間に読み取ったバイト数として AWS Glue メトリクスダッシュボードに集計されます)。<br />有効なディメンション: `JobName`、`JobRunId`、および `Type` (ゲージ)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。AWS Glue メトリクスダッシュボードのカーブの下にある領域は、2 つの異なるジョブ実行によって読み取られたバイト数を視覚的に比較するために使用できます。<br />単位: バイト<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />結果データは、次の目的で使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.s3.filesystem.write_bytes`<br />`glue.`*executorId*`.s3.filesystem.write_bytes`<br />`glue.ALL.s3.filesystem.write_bytes` | 前のレポート以降に、ドライバー、*executorId* によって特定されるエグゼキュター、またはすべてのエグゼキュターが Amazon S3 に書き込んだバイト数 (直前 1 分間に書き込んだバイト数として AWS Glue メトリクスダッシュボードに集計されます)。<br />有効なディメンション: `JobName`、`JobRunId`、および `Type` (ゲージ)。<br />有効な統計: SUM。このメトリクスは、最後に報告された値からのデルタ値であるため、AWS Glue メトリクスダッシュボードでは、集計に SUM 統計が使用されます。AWS Glue メトリクスダッシュボードのカーブの下にある領域は、2 つの異なるジョブ実行によって書き込まれたバイト数を視覚的に比較するために使用できます。<br />単位: バイト<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.streaming.numRecords` | マイクロバッチで受信されたレコードの数。このメトリクスは AWS Glue バージョン 2.0 以降の AWS Glue ストリーミングジョブにのみ使用できます。です。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: Sum, Maximum, Minimum, Average, Percentile<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.streaming.batchProcessingTimeInMs` | バッチの処理に要する時間 (ミリ秒単位)。このメトリクスは AWS Glue バージョン 2.0 以降の AWS Glue ストリーミングジョブにのみ使用できます。です。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (カウント)。<br />有効な統計: Sum, Maximum, Minimum, Average, Percentile<br />単位: 数<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 
| `glue.driver.system.cpuSystemLoad`<br />`glue.`*executorId*`.system.cpuSystemLoad`<br />`glue.ALL.system.cpuSystemLoad` | ドライバー、*executorId* により識別されるエグゼキュター、またはすべてのエグゼキュターに対する使用された CPU システムロードの割合 (スケール: 0 ～ 1)。<br />有効なディメンション: `JobName` (AWS Glue Job の名前)、`JobRunId` (JobRun ID. または `ALL`)、`Type` (ゲージ)。<br />有効な統計: Average このメトリクスは絶対値としてレポートされます。<br />単位: パーセント<br />次のモニタリングに使用できます。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html)<br />データの使用法をいくつか次に示します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/monitoring-awsglue-with-cloudwatch-metrics.html) | 

## AWS Glue メトリクスのディメンション
<a name="awsglue-metricdimensions"></a>

AWS Glue メトリクスは AWS Glue 名前空間を使用し、以下のディメンションのメトリクスを提供しています。


| ディメンション | 説明 | 
| --- | --- | 
| `JobName` | このディメンションで、特定の AWS Glue ジョブのすべてのジョブ実行のメトリクスがフィルタリングされます。 | 
| `JobRunId` | このディメンションで、JobRun ID によって特定の AWS Glue ジョブ実行のメトリクスがフィルタリングされるか、`ALL` となります。 | 
| `Type` | このディメンションで、`count` (集計した数) または `gauge` (ある時点での値) によってメトリクスがフィルタリングされます。 | 

詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。