

# ジョブのモニタリングとデバッグ
<a name="monitor-profile-glue-job-cloudwatch-metrics"></a>

AWS Glue ジョブに関するメトリクスを収集して AWS Glue および Amazon CloudWatch コンソールで可視化し、問題を特定して修正できます。AWS Glue ジョブのプロファイリングには、以下のステップが必要です。

1.  メトリクスを有効にする: 

   1.  ジョブ定義で [**Job metrics (ジョブメトリクス)**] オプションを有効にします。AWS Glue コンソールでプロファイリングを有効にするか、ジョブに対するパラメータとして有効にできます。詳細については、「[Spark ジョブのジョブプロパティの定義](add-job.md#create-job)」または「[AWS Glue ジョブでジョブパラメータを使用する](aws-glue-programming-etl-glue-arguments.md)」を参照してください。

   1.  ジョブ定義で **[AWS Glue オブザーバビリティメトリクス]** オプションを有効にします。AWS Glue コンソールでオブザーバビリティを有効にするか、ジョブに対するパラメータとして有効にできます。詳細については、「[AWS Glue オブザーバビリティメトリクスを使用したモニタリング](monitor-observability.md)」を参照してください。

1. ジョブスクリプトが `GlueContext` を初期化することを確認します。たとえば、次のスクリプトスニペットは `GlueContext` を初期化し、プロファイリングされたコードが配置されるスクリプト内の場所を示しています。この一般的な形式は、以下のデバッグシナリオで使用されます。

   ```
   import sys
   from awsglue.transforms import *
   from awsglue.utils import getResolvedOptions
   from pyspark.context import SparkContext
   from awsglue.context import GlueContext
   from awsglue.job import Job
   import time
   
   ## @params: [JOB_NAME]
   args = getResolvedOptions(sys.argv, ['JOB_NAME'])
   
   sc = SparkContext()
   glueContext = GlueContext(sc)
   spark = glueContext.spark_session
   job = Job(glueContext)
   job.init(args['JOB_NAME'], args)
   
   ...
   ...
   {{code-to-profile}}
   ...
   ...
   
   
   job.commit()
   ```

1. ジョブを実行します。

1. メトリクスを可視化する:

   1. AWS Glue コンソールでジョブメトリクスを可視化し、ドライバまたはエグゼキュターの異常なメトリクスを識別します。

   1. オブザーバビリティメトリクスは、「ジョブ実行モニタリング」ページ、「ジョブ実行詳細」ページ、または Amazon CloudWatch で確認できます。詳細については、「[AWS Glue オブザーバビリティメトリクスを使用したモニタリング](monitor-observability.md)」を参照してください。

1. 特定されたメトリクスを使用して根本原因を絞り込みます。

1. 必要に応じて、識別されたドライバーまたはジョブエグゼキュターのログストリームを使用して根本原因を確認します。

 **AWS Glue オブザーバビリティメトリクスのユースケース** 
+  [OOM 例外とジョブの異常のデバッグ](monitor-profile-debug-oom-abnormalities.md) 
+  [要求の厳しいステージとストラグラータスクのデバッグ](monitor-profile-debug-straggler.md) 
+  [複数のジョブの進行状況のモニタリング](monitor-debug-multiple.md) 
+  [DPU の容量計画のモニタリング](monitor-debug-capacity.md) 
+  [AWS Glue オブザーバビリティを使用してリソースの使用状況を監視し、コストを削減します。](https://aws.amazon.com/blogs/big-data/enhance-monitoring-and-debugging-for-aws-glue-jobs-using-new-job-observability-metrics)