Runbook: Export queue backlog
Runbook: Export queue backlog
Summary
| Symptom | Export jobs remain queued / running beyond SLO; alert ExportQueueAgeHigh |
| Severity | SEV-2 (SEV-1 if enterprise deadline impact widespread) |
| Service(s) | export-api, export-worker |
| Dashboard | https://internal.example/grafana/d/export-ops (placeholder) |
Symptoms
- Alert: queue oldest message age > 10 minutes
- Users report “export still processing” for small datasets
- Worker CPU low while queue depth rising (consumer failure) or worker CPU saturated (capacity)
Probable causes
- Workers crashed or scaled to zero
- Downstream warehouse slowness / connection exhaustion
- Poison messages blocking a partition/shard
- Sudden legitimate spike (end of month)
Diagnosis steps
- Open export-ops dashboard; note queue depth, age, worker count, error rate.
- Check worker deployments healthy:
kubectl get pods -l app=export-worker(example). - Inspect recent worker logs for warehouse timeouts vs panic loops.
- Sample one stuck
job_idfrom admin tools; confirm state transitions.
Remediation
Cause 1 — Workers down
- Restore desired replica count.
- Confirm queue age decreases within 5 minutes.
- If crash-loop: roll back to last known good image.
Cause 2 — Warehouse slowness
- Check warehouse status / active queries.
- Shed non-critical load if playbook allows.
- Enable degraded mode: reject new large exports with clear user error (feature flag).
Cause 3 — Poison messages
- Move failing job to dead-letter.
- Reprocess remainder.
- File incident with job payload type (no PII in ticket body).
Cause 4 — Spike
- Scale workers temporarily.
- Communicate status page if customer-visible delay exceeds policy.
Escalation
| If | Then |
|---|---|
| No improvement in 15 minutes | Page export on-call primary |
| Data corruption suspected | Page data platform + stop workers |
Post-incident
- Retrospective filed
- Update this runbook with new failure mode if needed
Last tested
| Date | Environment | Tester | Result |
|---|---|---|---|
| 2026-06-01 | staging game day | A. Rivera | Pass — scaled workers recovered age SLO |