Glue Diagnostics

SkillWeb & browsing

Use this skill to investigate and troubleshoot AWS Glue problems by analyzing ETL jobs, crawlers, connections, Data Catalog, DPU utilization, Spark execution, and job bookmarks following structured runbooks. Activate when: job failures, job timeouts, OOM errors, Spark executor or driver crashes, crawler failures, schema detection issues, partition problems, JDBC connection failures, VPC/subnet connectivity, S3 endpoint access, Data Catalog sync issues, schema evolution conflicts, DPU sizing problems, shuffle bottlenecks, data skew, transformation errors, bookmark issues, data quality failures, IAM permission errors, encryption problems, Glue Studio visual editor errors, job generation failures, or the user says something is wrong with Glue without naming specific symptoms.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Glue Diagnostics skill

What this skill tells your AI

The instructions your AI receives, as published by kilo-org/kilo-marketplace in skills/glue-diagnostics/SKILL.md and read by ahel’s review.

When to use

Any AWS Glue investigation where the console alone is insufficient — job failures, OOM errors, Spark crashes, crawler schema misdetection, connection timeouts, Data Catalog drift, DPU under/over-provisioning, data skew, bookmark corruption, or Glue Studio generation errors.

Investigation workflow

Step 1 — Collect and triage

aws glue get-job --name <job-name>
aws glue get-job-run --job-name <job-name> --run-id <run-id>
aws glue batch-get-jobs --job-names <job1> <job2>
aws glue get-crawler --name <crawler-name>
aws glue get-connection --name <connection-name>
aws logs filter-log-events --log-group-name /aws-glue/jobs/logs-v2 --log-stream-name-prefix <run-id>

Step 2 — Domain deep dive

aws glue get-job-runs --job-name <job-name> --max-results 10
aws glue get-crawler-metrics --crawler-name-list <crawler-name>
aws glue get-databases
aws glue get-tables --database-name <db-name>
aws glue get-partitions --database-name <db-name> --table-name <table-name>
aws glue get-job-bookmark --job-name <job-name>
aws cloudwatch get-metric-statistics --namespace Glue --metric-name glue.driver.aggregate.bytesRead --dimensions Name=JobName,Value=<job-name> --start-time <iso> --end-time <iso> --period 300 --statistics Sum

Read references/glue-guardrails.md before concluding on any Glue issue.

Tool quick reference

Tool / APIWhen to use
glue get-jobJob configuration, Glue version, DPU, worker type
glue get-job-runSpecific run status, error message, execution time
glue batch-get-jobsRetrieve multiple job configs at once
glue get-job-runsJob run history, failure patterns
glue get-crawlerCrawler config, targets, schedule, schema change policy
glue get-crawler-metricsCrawler runtime stats, tables created/updated
glue get-connectionJDBC/network connection config, VPC, subnet
glue get-databases / get-tablesData Catalog metadata, schema definitions
glue get-partitionsPartition metadata, partition keys, storage location
glue get-job-bookmarkBookmark state for incremental processing
logs filter-log-eventsGlue job CloudWatch logs for Spark errors
cloudwatch get-metric-statisticsGlue job metrics (bytes read/written, DPU usage)

Gotchas: AWS Glue

  • DPU sizing matters: G.1X (1 DPU per worker, 16 GB memory), G.2X (2 DPU, 32 GB), G.4X (4 DPU, 64 GB), G.8X (8 DPU, 128 GB). Under-provisioning causes OOM; over-provisioning wastes cost.
  • Spark executor OOM vs driver OOM: executor OOM means data partitions are too large (repartition or increase worker type). Driver OOM means too much data collected to the driver (avoid collect(), reduce broadcast join size).
  • Job bookmarks track processed data for incremental loads. Bookmarks only work with S3 sources using job.init()/job.commit(). Resetting bookmarks reprocesses all data.
  • Crawler schema evolution: crawlers can add new columns but may not handle type changes gracefully. Schema change policy (UPDATE_IN_DATABASE vs LOG) controls behavior.
  • Glue connections for JDBC require VPC, subnet, and security group configuration. The subnet must have a NAT gateway or VPC endpoints for Glue service access.
  • Glue Data Catalog vs Hive metastore: Glue Data Catalog is the default metastore for Glue jobs. External Hive metastore requires explicit configuration and network connectivity.
  • Glue Studio visual editor has limitations: complex transformations may require custom code nodes. Not all PySpark/Scala operations are available as visual transforms.
  • Spark UI is available for Glue 2.0+ jobs via the Glue console. It provides DAG visualization, stage details, and executor metrics for debugging performance issues.
  • Job timeout defaults to 48 hours (2880 minutes). Long-running jobs may silently consume DPUs. Always set an explicit timeout.
  • Glue version compatibility: Glue 2.0 (Spark 2.4), Glue 3.0 (Spark 3.1), Glue 4.0 (Spark 3.3). Library availability and behavior differ across versions.
  • Partition management: too many small partitions cause excessive S3 LIST calls. Too few large partitions cause OOM. Aim for 128 MB–512 MB per partition.
  • S3 eventual consistency impact: S3 provides strong read-after-write consistency since December 2020, but Glue Data Catalog partition metadata updates may still lag behind S3 changes.

Worker type comparison

Worker TypeDPUMemoryvCPUUse Case
G.1X116 GB4Standard ETL, small-medium datasets
G.2X232 GB8Memory-intensive transforms, large joins
G.4X464 GB16ML transforms, very large datasets
G.8X8128 GB32Massive datasets, complex aggregations
G.025X0.252 GB2Python shell jobs only
Z.2X232 GB8Ray jobs (Glue 4.0+)

Glue version comparison

VersionSparkPythonKey Features
Glue 2.02.43.7Spark UI, no startup overhead
Glue 3.03.13.7Optimized shuffle, auto-scaling
Glue 4.03.33.10Ray support, Python 3.10, improved performance

Anti-hallucination rules

  1. Always cite specific job run error messages, crawler metrics, or CloudWatch log entries as evidence.
  2. Never assume OOM is always executor-side. Check whether the error is on the driver or executor — the fix is different.
  3. Job bookmarks only work with supported sources (S3, JDBC) and require job.init()/job.commit() calls. Never claim bookmarks work automatically with all sources.
  4. Crawler schema changes depend on the SchemaChangePolicy. Never assume crawlers automatically update table schemas.
  5. Glue connections require VPC networking. Never suggest JDBC connections work without proper VPC, subnet, and security group configuration.
  6. Spend no more than 2 minutes on any single hypothesis. Pivot if inconclusive.

28 runbooks

CategoryIDsCovers
A — JobsA1–A4Job failures, timeout, OOM, Spark errors
B — CrawlersB1–B3Crawler failures, schema detection, partition issues
C — ConnectionsC1–C3JDBC connection failures, VPC/subnet, S3 endpoint
D — Data CatalogD1–D2Catalog sync issues, schema evolution
E — PerformanceE1–E3DPU sizing, shuffle issues, data skew
F — ETLF1–F3Transformation errors, bookmark issues, data quality
G — SecurityG1–G2IAM permissions, encryption
H — Glue StudioH1–H2Visual editor errors, job generation
Z — Catch-AllZ1General troubleshooting

Signals

GitHub stars
175
Forks
159
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
glue-diagnostics
Source
github.com/kilo-org/kilo-marketplace