

# 作业监控和调试
<a name="monitor-profile-glue-job-cloudwatch-metrics"></a>

您可以收集有关 Amazon Glue 任务的指标，并在 Amazon Glue 和 Amazon CloudWatch 控制台上显示它们，以确定并修复问题。分析 Amazon Glue 作业需要执行以下步骤：

1.  启用指标：

   1.  在作业定义中启用 **Job metrics (作业指标)** 选项。您可以在 Amazon Glue 控制台中启用分析，也可以作为作业的参数。有关更多信息，请参阅[定义 Spark 作业的作业属性](add-job.md#create-job)或[在 Amazon Glue 作业中使用作业参数](aws-glue-programming-etl-glue-arguments.md)。

   1.  在作业定义中启用 **Amazon Glue 可观测性指标**选项。您可以在 Amazon Glue 控制台中启用可观测性，也可以作为作业的参数。有关更多信息，请参阅 [使用 Amazon 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. 在 Amazon Glue 控制台上显示作业指标，并确定驱动程序或执行程序的异常指标。

   1. 在作业运行监测页面、作业运行详细信息页面或 Amazon CloudWatch 上查看可观测性指标。有关更多信息，请参阅 [使用 Amazon Glue 可观测性指标进行监控](monitor-observability.md)。

1. 使用已确定的指标缩小根本原因范围。

1. 也可以选择使用已确定驱动程序或作业执行程序的日志流确认根本原因。

 **Amazon Glue 可观测性指标的用例** 
+  [调试 OOM 异常和作业异常](monitor-profile-debug-oom-abnormalities.md) 
+  [调试要求苛刻的阶段和落后任务](monitor-profile-debug-straggler.md) 
+  [监控多个作业的进度](monitor-debug-multiple.md) 
+  [监控 DPU 容量规划](monitor-debug-capacity.md) 
+  [使用 Amazon Glue 可观测性监测资源利用率以降低成本](https://www.amazonaws.cn/blogs/big-data/enhance-monitoring-and-debugging-for-aws-glue-jobs-using-new-job-observability-metrics) 