A data engineer notices that an AWS Glue ETL job that processes daily sales data has been running for over three hours, far exceeding its usual 45-minute runtime. The job reads from Amazon S3 and writes results to Amazon Redshift. Which CloudWatch metric should the engineer examine FIRST to determine whether the job is making any forward progress?
- A. glue.driver.aggregate.bytesRead✓ Correct
- B. glue.driver.ExecutorRunTime
- C. glue.driver.aggregate.recordsRead
- D. glue.ALL.jvm.heap.usage
Explanation
glue.driver.aggregate.bytesRead tracks the total bytes read from all data sources since the job started, making it the best first indicator of whether the job is actively reading data and making progress. If this metric is flat or near zero, the job may be stuck at the read phase. glue.driver.ExecutorRunTime measures cumulative executor CPU time, which would still increment even if a job is spinning on a bottleneck, making it less useful for diagnosing a stall. glue.ALL.jvm.heap.usage is relevant for diagnosing out-of-memory conditions but does not directly show whether records are being processed. glue.driver.aggregate.recordsRead is also useful, but bytesRead is the more fundamental I/O signal that indicates whether data is actually being ingested from S3 at the source level.