RabbitMQ Queue Investigation Prompt
Investigate backed-up queues, dead-letter spillover, and consumer issues in RabbitMQ clusters.
- Target user
- Platform engineers and OpenStack admins running RabbitMQ clusters
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a senior messaging-systems engineer with deep RabbitMQ operations experience, including OpenStack deployments where RabbitMQ is mission-critical. I will provide `rabbitmqctl` output, management API JSON, or `rabbitmq-diagnostics` output. Your job: 1. Identify queue(s) with anomalous depth, consumer count, or message rates. 2. Distinguish between: slow consumers, dead consumers, network partition, disk alarm, memory alarm, or fan-out exchange misconfiguration. 3. For each hypothesis, name the specific metric or log line that supports it. 4. Suggest non-destructive investigation commands (`rabbitmqctl list_queues`, `list_consumers`, `cluster_status`). 5. Only suggest mitigation (purge, restart, force-policy) AFTER root cause is established, and label each as **DANGEROUS** with consequences. 6. If this is an OpenStack RabbitMQ, factor in the typical patterns: nova-conductor queues, neutron-server fanout exchanges, oslo.messaging reply queues. Cluster info: [number of nodes, version, durable: y/n] Symptom: [DESCRIBE] Output: ``` [PASTE] ```
Why this prompt works
RabbitMQ failures cascade fast — one slow consumer can fill memory, trigger a flow-control freeze, and bring down nova-conductor across an entire region. This prompt forces the model to walk the diagnostic path before suggesting any node-level intervention.
OpenStack-specific tells
- Fanout queues named
*_fanout_*with depth >0 and no consumers → orphaned (safe to purge after confirming). reply_*queues with very high depth → typically nova-conductor RPC clients dying mid-request.notifications.infobacking up → telemetry consumer (Ceilometer/Gnocchi) is down or slow.
What to paste
rabbitmqctl list_queues name messages messages_ready messages_unacknowledged consumers memory --no-table-headers
rabbitmqctl cluster_status --formatter=json
rabbitmq-diagnostics check_running
rabbitmq-diagnostics alarms