Advanced

DLQ Triage Assistant

Point this at your DLQ topic and connector name. Generate safe commands to inspect headers, unwrap payloads, and map errors to fixes.

1) inputs

2) enumerate & peek

# count a sample & show latest offsets
kafka-run-class kafka.tools.GetOffsetShell \
  --broker-list localhost:9092 --topic dlq.inventory --time -1

# peek a few DLQ records (value only)
kafka-console-consumer --bootstrap-server localhost:9092 \
  --topic dlq.inventory --from-beginning --timeout-ms 4000 \
  --max-messages 5 | jq -C .
show headers & decode original value
# show headers (kafka cli shows headers only with Kafkacat or kcat)
# try kcat if available (brew install kcat)
kcat -b localhost:9092 -t dlq.inventory -C -J -c 5 | jq -C .

# extract original payload if record is wrapped (common in Connect DLQs)
kafka-console-consumer --bootstrap-server localhost:9092 \
  --topic dlq.inventory --from-beginning --timeout-ms 4000 --max-messages 5 \
  | jq -r '.original.value // .record.value // .value // .payload.original.value // .payload.record.value // empty' \
  | jq -C .
connector status & restart
curl -s http://localhost:8083/connectors | jq
curl -s http://localhost:8083/connectors/inventory-connector/status | jq
# restart connector (use sparingly)
curl -s -X POST http://localhost:8083/connectors/inventory-connector/restart
sink lag (is the consumer stuck?)
kafka-consumer-groups --bootstrap-server localhost:9092 \
  --describe --group my-sink
Progress 0% No progress yet
Progress is stored locally in this browser.