

# AWS Glue オブザーバビリティメトリクスを使用したモニタリング
<a name="monitor-observability"></a>

**注記**  
AWS Glue オブザーバビリティメトリクスは AWS Glue 4.0 以降のバージョンで使用できます。　

 AWS Glue オブザーバビリティメトリクスを使用して、AWS Glue for Apache Spark ジョブの内部で何が起こっているかに関するインサイトを生成し、問題の優先順位付けと分析を改善できます。オブザーバビリティメトリクスは Amazon CloudWatch ダッシュボードを通じて視覚化され、エラーの根本原因分析の実行に役立てたり、パフォーマンスのボトルネックを診断したりするために使用できます。問題のデバッグにかかる時間を大幅に削減できるため、より迅速かつ効果的に問題を解決することに注力できます。

 AWS Glue オブザーバビリティは、次の 4 つのグループに分類された Amazon CloudWatch メトリクスを提供します。
+  **[信頼性] (エラークラス)** – 対処する特定の時間範囲における最も一般的な障害の理由を簡単に特定します。
+  **[パフォーマンス] (歪み)** – パフォーマンスのボトルネックを特定し、チューニング手法を適用します。例えば、ジョブの歪みを理由としてパフォーマンスの低下が発生した場合、Spark Adaptive Query Execution を有効にして、歪み結合のしきい値を微調整することをお勧めします。
+  **[スループット] (ソース/シンクあたりのスループット)** – データの読み取りと書き込みの傾向をモニタリングします。異常についての Amazon CloudWatch アラームを設定することもできます。
+  **[リソースの使用率] (ワーカー、メモリ、ディスクの使用率)** – キャパシティの使用率が低いジョブを効率的に見つけます。これらのジョブについて AWS Glue 自動スケーリングを有効にすることをお勧めします。

## AWS Glue オブザーバビリティメトリクスの開始方法
<a name="monitor-observability-getting-started"></a>

**注記**  
 新しいメトリクスは、AWS Glue Studio コンソールでデフォルトで有効化されています。

**AWS Glue Studio でオブザーバビリティメトリクスを設定するには:**

1. AWS Glue コンソールにログインし、コンソールメニューから **[ETL ジョブ]** を選択します。

1. **[自分のジョブ]** セクションで、ジョブ名をクリックしてジョブを選択します。

1. [**Job details**] (ジョブの詳細) タブを選択します。

1. 一番下までスクロールして、**[詳細プロパティ]** を選択し、**[ジョブのオブザーバビリティメトリクス]** を選択します。  
![このスクリーンショットは、[ジョブの詳細] タブの [詳細プロパティ] を示しています。[ジョブのオブザーバビリティメトリクス] オプションが強調表示されます。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/job-details-observability-metrics.png)

**AWS CLI を使用して AWS Glue オブザーバビリティメトリクスを有効にするには**
+  入力 JSON ファイル内の次の key-value を `--default-arguments` マップに追加します。

  ```
  --enable-observability-metrics, true
  ```

## AWS Glue オブザーバビリティの使用
<a name="monitor-observability-cloudwatch"></a>

 AWS Glue オブザーバビリティメトリクスは Amazon CloudWatch を通じて提供されるため、Amazon CloudWatch コンソール、AWS CLI、SDK、または API を使用してオブザーバビリティメトリクスデータポイントをクエリできます。AWS Glue オブザーバビリティメトリクスを使用する場合のユースケースの例については、「[Using Glue Observability for monitoring resource utilization to reduce cost](https://aws.amazon.com/blogs/big-data/enhance-monitoring-and-debugging-for-aws-glue-jobs-using-new-job-observability-metrics/)」を参照してください。

### Amazon CloudWatch コンソールでの AWS Glue オブザーバビリティの使用
<a name="monitor-observability-cloudwatch-console"></a>

**Amazon CloudWatch コンソールでメトリクスをクエリおよび視覚化するには:**

1.  Amazon CloudWatch コンソールを開き、**[すべてのメトリクス]** を選択します。

1.  [カスタム名前空間] の下で、**AWS Glue** を選択します。

1.  **[ジョブのオブザーバビリティメトリクス]、[ソースごとのオブザーバビリティメトリクス]、または [シンクごとのオブザーバビリティメトリクス]** を選択します。

1. 特定のメトリクス名、ジョブ名、ジョブ実行 ID を検索し、選択します。

1. **[グラフ化されたメトリクス]** タブで、任意の統計、期間、その他のオプションを設定します。  
![スクリーンショットは、Amazon CloudWatch コンソールとメトリクスのグラフを示しています。](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/cloudwatch-console-metrics.png)

**AWS CLI を使用してオブザーバビリティメトリクスをクエリするには:**

1.  メトリクス定義 JSON ファイルを作成し、`your-Glue-job-name` と `your-Glue-job-run-id` を実際のものに置き換えます。

   ```
   $ cat multiplequeries.json
   [
       {
           "Id": "avgWorkerUtil_0",
           "MetricStat": {
               "Metric": {
                   "Namespace": "Glue",
                   "MetricName": "glue.driver.workerUtilization",
                   "Dimensions": [
                       {
                           "Name": "JobName",
                           "Value": "<your-Glue-job-name-A>"
                       },
                       {
                           "Name": "JobRunId",
                           "Value": "<your-Glue-job-run-id-A>"
                       },
                       {
                           "Name": "Type",
                           "Value": "gauge"
                       },
                       {
                           "Name": "ObservabilityGroup",
                           "Value": "resource_utilization"
                       }
                   ]
               },
               "Period": 1800,
               "Stat": "Minimum",
               "Unit": "None"
           }
       },
       {
           "Id": "avgWorkerUtil_1",
           "MetricStat": {
               "Metric": {
                   "Namespace": "Glue",
                   "MetricName": "glue.driver.workerUtilization",
                   "Dimensions": [
                       {
                           "Name": "JobName",
                           "Value": "<your-Glue-job-name-B>"
                       },
                       {
                           "Name": "JobRunId",
                           "Value": "<your-Glue-job-run-id-B>"
                       },
                       {
                           "Name": "Type",
                           "Value": "gauge"
                       },
                       {
                           "Name": "ObservabilityGroup",
                           "Value": "resource_utilization"
                       }
                   ]
               },
               "Period": 1800,
               "Stat": "Minimum",
               "Unit": "None"
           }
       }
   ]
   ```

1.  `get-metric-data` コマンドを実行します。

   ```
   $ aws cloudwatch get-metric-data --metric-data-queries file: //multiplequeries.json \
        --start-time '2023-10-28T18: 20' \
        --end-time '2023-10-28T19: 10'  \
        --region us-east-1
   {
       "MetricDataResults": [
           {
               "Id": "avgWorkerUtil_0",
               "Label": "<your-label-for-A>",
               "Timestamps": [
                   "2023-10-28T18:20:00+00:00"
               ],
               "Values": [
                   0.06718750000000001
               ],
               "StatusCode": "Complete"
           },
           {
               "Id": "avgWorkerUtil_1",
               "Label": "<your-label-for-B>",
               "Timestamps": [
                   "2023-10-28T18:50:00+00:00"
               ],
               "Values": [
                   0.5959183673469387
               ],
               "StatusCode": "Complete"
           }
       ],
       "Messages": []
   }
   ```

## オブザーバビリティメトリクス
<a name="monitor-observability-metrics-definitions"></a>

 AWS Glue オブザーバビリティは以下のメトリクスをプロファイリングし、30 秒ごとに Amazon CloudWatch に送信します。これらのメトリクスの一部は、AWS Glue Studio の「ジョブ実行モニタリング」ページで確認できます。


| メトリクス | 説明 | カテゴリ | 
| --- | --- | --- | 
| glue.driver.skewness.stage | メトリクスカテゴリ: job\_performance<br />スパークステージの実行歪度: このメトリクスは、特定のステージの最大タスク期間が、このステージのタスク期間の中央値と比較してどれだけ長いかを示す指標です。このメトリクスは、入力データの歪みや変換 (スキュー結合など) によって生じる可能性のある実行の歪みをキャプチャします。このメトリクスの値は [0, infinity] の範囲に入ります。ここで、0 は、ステージ内のすべてのタスクのうち、タスクの実行時間の最大値と中央値の比率が特定のステージ歪度係数未満であることを意味します。デフォルトのステージ歪度係数は `5`で、spark conf: spark.metrics.conf.driver.source.glue.jobPerformance.skewnessFactor で上書きされます<br />ステージ歪度の値が 1 の場合、比率はステージ歪度係数の 2 倍になります。<br />ステージ歪度の値は、現在の歪度を反映して 30 秒ごとに更新されます。ステージ終了時の値は、最終ステージの歪度を反映しています。<br />このステージレベルのメトリクスは、ジョブレベルのメトリクス `glue.driver.skewness.job` を計算するために使用されます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (job\_performance)<br />有効な統計: Average、Maximum、Minimum、Percentile<br />単位: 数 | job\_performance | 
| glue.driver.skewness.job | メトリクスカテゴリ: job\_performance<br /> ジョブの歪度は、すべてのステージの重み付き歪度の最大値です。ステージの歪度 (glue.driver.skewness.stage) は、ステージ期間で重み付けされます。これは、非常に歪んだステージが、実際には他のステージに比べて実行時間が非常に短い (したがって、その歪度はジョブパフォーマンス全体にとって重要ではなく、歪みの解消に努力する価値がない) というコーナーケースを回避するためです。<br />このメトリクスは各ステージの完了時に更新されるため、最後の値には実際の全体的なジョブの歪みが反映されます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (job\_performance)<br />有効な統計: Average、Maximum、Minimum、Percentile<br />単位: 数 | job\_performance | 
| glue.succeed.ALL | メトリクスカテゴリ: error<br />障害カテゴリの全体像を把握するための、正常なジョブ実行の総数<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (カウント)、ObservabilityGroup (エラー)<br />有効な統計: SUM<br />単位: 数 | エラー | 
| glue.error.ALL | メトリクスカテゴリ: error <br />障害カテゴリの全体像を把握するための、ジョブ実行エラーの総数<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (カウント)、ObservabilityGroup (エラー)<br />有効な統計: SUM<br />単位: 数 | エラー | 
| glue.error.[error category] | メトリクスカテゴリ: error <br />これは実際には一連のメトリクスで、ジョブの実行が失敗した場合にのみ更新されます。エラー分類はトリアージとデバッグに役立ちます。ジョブ実行に失敗すると、失敗の原因となったエラーが分類され、対応するエラーカテゴリメトリクスが 1 に設定されます。これにより、時間の経過に伴う障害分析だけでなく、すべてのジョブエラー分析を実行して、最も一般的な障害カテゴリを特定して対処を開始できます。AWS Glue には、OUT\_OF\_MEMORY (ドライバとエグゼキュター)、PERMISSION、SYNTAX、THROTTLING など、28 のエラーカテゴリがあります。また、COMPILATION、LAUNCH、TIMEOUT といったエラーカテゴリもあります。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (カウント)、ObservabilityGroup (エラー)<br />有効な統計: SUM<br />単位: 数 | エラー | 
| glue.driver.workerUtilization | メトリクスカテゴリ: resource\_utilization <br />割り当てられたワーカーのうち、実際に使用されているワーカーの割合。うまく機能しない場合は、自動スケーリングが役に立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average、Maximum、Minimum、Percentile<br />単位: パーセント | resource\_utilization | 
| glue.driver.memory.heap.[available \| used] | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中のドライバの使用可能/使用済みヒープメモリ。これは、特に時間の経過に伴うメモリ使用量の傾向を把握するのに役立ち、メモリ関連の障害をデバッグするだけでなく、潜在的な障害を回避するのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: バイト | resource\_utilization | 
| glue.driver.memory.heap.used.percentage | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中にドライバが (%) 使用したヒープメモリ。これは、特に時間の経過に伴うメモリ使用量の傾向を把握するのに役立ち、メモリ関連の障害をデバッグするだけでなく、潜在的な障害を回避するのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.driver.memory.non-heap.[available \| used] | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中のドライバの使用可能/使用済み非ヒープメモリ。これは、特に時間の経過に伴うメモリ使用量の傾向を把握するのに役立ち、メモリ関連の障害をデバッグするだけでなく、潜在的な障害を回避するのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: バイト | resource\_utilization | 
| glue.driver.memory.non-heap.used.percentage | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中にドライバが (%) 使用した非ヒープメモリ。これは、特に時間の経過に伴うメモリ使用量の傾向を把握するのに役立ち、メモリ関連の障害をデバッグするだけでなく、潜在的な障害を回避するのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.driver.memory.total.[available \| used] | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中のドライバの使用可能/使用済み合計メモリ。これは、特に時間の経過に伴うメモリ使用量の傾向を把握するのに役立ち、メモリ関連の障害をデバッグするだけでなく、潜在的な障害を回避するのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: バイト | resource\_utilization | 
| glue.driver.memory.total.used.percentage | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中にドライバが (%) 使用した合計メモリ。これは、特に時間の経過に伴うメモリ使用量の傾向を把握するのに役立ち、メモリ関連の障害をデバッグするだけでなく、潜在的な障害を回避するのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.ALL.memory.heap.[available \| used] | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの使用可能/使用済みヒープメモリ。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: バイト | resource\_utilization | 
| glue.ALL.memory.heap.used.percentage | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの (%) 使用済みヒープメモリ。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.ALL.memory.non-heap.[available \| used] | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの使用可能/使用済み非ヒープメモリ。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: バイト | resource\_utilization | 
| glue.ALL.memory.non-heap.used.percentage | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの (%) 使用済み非ヒープメモリ。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.ALL.memory.total.[available \| used] | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの使用可能/使用済み合計メモリ。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: バイト | resource\_utilization | 
| glue.ALL.memory.total.used.percentage | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの (%) 使用済み合計メモリ。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.driver.disk.[available\_GB \| used\_GB] | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中のドライバの使用可能/使用済みディスク容量。これは、特に時間の経過に伴うディスク使用量の傾向を把握するのに役立ち、潜在的な障害を回避できるだけでなく、ディスク容量不足に関連する障害をデバッグするのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: ギガバイト | resource\_utilization | 
| glue.driver.disk.used.percentage] | メトリクスカテゴリ: resource\_utilization <br />ジョブ実行中のドライバの使用可能/使用済みディスク容量。これは、特に時間の経過に伴うディスク使用量の傾向を把握するのに役立ち、潜在的な障害を回避できるだけでなく、ディスク容量不足に関連する障害をデバッグするのにも役立ちます。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.ALL.disk.[available\_GB \| used\_GB] | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの使用可能/使用済みディスク容量。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: ギガバイト | resource\_utilization | 
| glue.ALL.disk.used.percentage | メトリクスカテゴリ: resource\_utilization <br />エグゼキュターの使用可能/使用済み/(%) 使用済みディスク容量。ALL はすべてのエグゼキュターを意味します。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)<br />有効な統計: Average<br />単位: パーセント | resource\_utilization | 
| glue.driver.bytesRead | メトリクスカテゴリ: throughput <br />このジョブ実行で入力ソースごとに読み取られたバイト数、およびすべてのソースで読み取られたバイト数。これにより、データ量とその経時的な変化を把握でき、データの歪みなどの問題に対処しやすくなります。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)、Source (ソースデータの場所)<br />有効な統計: Average<br />単位: バイト | スループット | 
| glue.driver.[recordsRead \| filesRead]  | メトリクスカテゴリ: throughput <br />このジョブ実行で入力ソースごとに読み取られたレコード/ファイルの数、およびすべてのソースで読み取られたレコード/ファイルの数。これにより、データ量とその経時的な変化を把握でき、データの歪みなどの問題に対処しやすくなります。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)、Source (ソースデータの場所)<br />有効な統計: Average<br />単位: 数 | スループット | 
| glue.driver.partitionsRead  | メトリクスカテゴリ: throughput <br />このジョブ実行で Amazon S3 入力ソースごとに読み取られたパーティションの数、およびすべてのソースで読み取られたのパーティション数。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)、Source (ソースデータの場所)<br />有効な統計: Average<br />単位: 数 | スループット | 
| glue.driver.bytesWrittten | メトリクスカテゴリ: throughput <br />このジョブ実行で出力シンク 1 つあたりに書き込まれたバイト数、およびすべてのシンクで書き込まれたバイト数。これにより、データ量とその経時的変化を把握でき、処理の歪みなどの問題に対処しやすくなります。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)、Sink (シンクデータの場所)<br />有効な統計: Average<br />単位: バイト | スループット | 
| glue.driver.[recordsWritten \| filesWritten] | メトリクスカテゴリ: throughput <br />このジョブ実行で出力シンクごとに書き込まれるレコード/ファイルの数、およびすべてのシンクで書き込まれるレコード/ファイルの数。これにより、データ量とその経時的変化を把握でき、処理の歪みなどの問題に対処しやすくなります。<br />有効なディメンション: JobName (AWS Glue ジョブの名前)、JobRunId (JobRun ID. または ALL)、Type (ゲージ)、ObservabilityGroup (resource\_utilization)、Sink (シンクデータの場所)<br />有効な統計: Average<br />単位: 数 | スループット | 

## エラーカテゴリ
<a name="monitor-observability-error-categories"></a>


| エラーカテゴリ | 説明 | 
| --- | --- | 
| COMPILATION\_ERROR | Scala コードのコンパイル中に発生するエラー。 | 
| CONNECTION\_ERROR | サービス/リモート、ホスト/データベースのサービスなどへの接続中に発生するエラー。 | 
| DISK\_NO\_SPACE\_ERROR | ドライバ/エグゼキュターのディスクに空きがないと発生するエラー。 | 
| OUT\_OF\_MEMORY\_ERROR | ドライバ/エグゼキュターのメモリに空きがないと発生するエラー。 | 
| IMPORT\_ERROR | 依存関係をインポートすると発生するエラー。 | 
| INVALID\_ARGUMENT\_ERROR | 入力引数が無効または不正なときにエラーが発生します。 | 
| PERMISSION\_ERROR | サービス、データなどに対する権限がないと発生するエラー。 | 
| RESOURCE\_NOT\_FOUND\_ERROR | データ、位置情報などが存在しないと発生するエラー。 | 
| QUERY\_ERROR | Spark SQL クエリの実行によって発生するエラー。 | 
| SYNTAX\_ERROR | スクリプトに構文エラーがあると発生するエラー。 | 
| THROTTLING\_ERROR | サービスの同時実行数の制限に達したり、サービスクォータの制限を超えたりすると発生するエラー。 | 
| DATA\_LAKE\_FRAMEWORK\_ERROR | AWS Glue がネイティブでサポートするデータレイクフレームワーク (Hudi、Iceberg など) から発生するエラー。 | 
| UNSUPPORTED\_OPERATION\_ERROR | サポートされていない操作を行うと発生するエラー。 | 
| RESOURCES\_ALREADY\_EXISTS\_ERROR | 作成または追加するリソースがすでに存在していると発生するエラー。 | 
| GLUE\_INTERNAL\_SERVICE\_ERROR | AWS Glue の内部サービスに問題があると発生するエラー。 | 
| GLUE\_OPERATION\_TIMEOUT\_ERROR | AWS Glue 操作がタイムアウトになると発生するエラー。 | 
| GLUE\_VALIDATION\_ERROR | AWS Glue ジョブに必要な値を検証できなかった場合に発生するエラー。 | 
| GLUE\_JOB\_BOOKMARK\_VERSION\_MISMATCH\_ERROR | 同じソースバケットで同じジョブを実行し、同じ/異なる送信先に同時に書き込んだ場合 (同時実行数 >1) に発生するエラー。 | 
| LAUNCH\_ERROR | AWS Glue ジョブの起動段階で発生するエラー。 | 
| DYNAMODB\_ERROR | Amazon DynamoDB サービスから発生する一般的なエラー。 | 
| GLUE\_ERROR | AWS Glue サービスから発生する一般的なエラー。 | 
| LAKEFORMATION\_ERROR | AWS Lake Formation サービスから発生する一般的なエラー。 | 
| REDSHIFT\_ERROR | Amazon Redshift サービスから発生する一般的なエラー。 | 
| S3\_ERROR | Amazon S3 サービスから発生する一般的なエラー。 | 
| SYSTEM\_EXIT\_ERROR | 一般的なシステム終了エラー。 | 
| TIMEOUT\_ERROR | 操作がタイムアウトしてジョブが失敗すると発生する一般的なエラー。 | 
| UNCLASSIFIED\_SPARK\_ERROR | Spark から発生する一般的なエラー。 | 
| UNCLASSIFIED\_ERROR | デフォルトのエラーカテゴリ。 | 

## 制限事項
<a name="monitoring-observability-limitations"></a>

**注記**  
メトリクスを公開するには、`glueContext` を初期化する必要があります。

 ソースディメンションの値は、ソースタイプに応じて Amazon S3 パスまたはテーブル名のいずれかになります。さらに、ソースが JDBC でクエリオプションが使用されている場合、クエリ文字列はソースディメンションに設定されます。値が 500 文字を超える場合は、500 文字以内に切り捨てられます。値には次の制限があります。
+ ASCII 以外の文字は削除されます。
+ ソース名に ASCII 文字が含まれていない場合は、<non-ASCII input> に変換されます。

### スループットメトリクスの制約事項と考慮事項
<a name="monitoring-observability-considerations"></a>
+  DataFrame と DataFrame ベースの DynamicFrame (例:JDBC、Amazon S3 の parquet からの読み取り) はサポートされていますが、RDD ベースの DynamicFrame (Amazon S3 での csv、json の読み取りなど) はサポートされていません。技術的には、Spark UI に表示されるすべての読み取りと書き込みがサポートされています。
+  データソースがカタログテーブルで、形式が JSON、CSV、テキスト、または Iceberg の場合、`recordsRead` メトリクスが出力されます。
+  `glue.driver.throughput.recordsWritten`、`glue.driver.throughput.bytesWritten`、`glue.driver.throughput.filesWritten` メトリクスは JDBC テーブルと Iceberg テーブルでは使用できません。
+  メトリクスは遅延する可能性があります。ジョブが約 1 分後に終了する場合、Amazon CloudWatch メトリクスにはスループットメトリクスがない可能性があります。