Select your cookie preferences

We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.

If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”

Job monitoring and debugging

Focus mode
Job monitoring and debugging - AWS Glue

You can collect metrics about AWS Glue jobs and visualize them on the AWS Glue and Amazon CloudWatch consoles to identify and fix issues. Profiling your AWS Glue jobs requires the following steps:

  1. Enable metrics:

    1. Enable the Job metrics option in the job definition. You can enable profiling in the AWS Glue console or as a parameter to the job. For more information see Defining job properties for Spark jobs or Using job parameters in AWS Glue jobs.

    2. Enable the AWS Glue Observability metrics option in the job definition. You can enable Observability in the AWS Glue console or as a parameter to the job. For more information see Monitoring with AWS Glue Observability metrics.

  2. Confirm that the job script initializes a GlueContext. For example, the following script snippet initializes a GlueContext and shows where profiled code is placed in the script. This general format is used in the debugging scenarios that follow.

    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()
  3. Run the job.

  4. Visualize the metrics:

    1. Visualize job metrics on the AWS Glue console and identify abnormal metrics for the driver or an executor.

    2. Check observability metrics in the Job run monitoring page, job run details page, or on Amazon CloudWatch. For more information, see Monitoring with AWS Glue Observability metrics.

  5. Narrow down the root cause using the identified metric.

  6. Optionally, confirm the root cause using the log stream of the identified driver or job executor.

Use cases for AWS Glue observability metrics

PrivacySite termsCookie preferences
© 2025, Amazon Web Services, Inc. or its affiliates. All rights reserved.