

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 任務監控與偵錯
<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)或[在 Glue AWS 任務中使用任務參數](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) 