RabbitMQ Queue Status
Overview
Quick inspection of RabbitMQ queue status across environments. Lists message counts, consumer counts, and identifies DLQs with pending messages.
Commands
List all DLQs with messages
kubectl --context=<env> exec -n shared-infra <rabbitmq-pod> -- \
rabbitmqctl list_queues -p data_platform name messages consumers state \
| grep "dead_letter" | awk '$2 > 0'
Check specific service queues
kubectl --context=<env> exec -n shared-infra <rabbitmq-pod> -- \
rabbitmqctl list_queues -p data_platform name messages consumers state \
| grep "<service>"
List all queues with messages (non-empty)
kubectl --context=<env> exec -n shared-infra <rabbitmq-pod> -- \
rabbitmqctl list_queues -p data_platform name messages consumers state \
| awk 'NR==1 || $2 > 0'
Check consumer health (queues with 0 consumers)
kubectl --context=<env> exec -n shared-infra <rabbitmq-pod> -- \
rabbitmqctl list_queues -p data_platform name messages consumers state \
| grep -v "dead_letter" | awk '$3 == 0 && $2 > 0'
Pod Discovery
| Environment | Pod pattern |
|---|---|
| DEV | kubectl --context=dev get pods -n shared-infra | grep rabbit |
| PROD | rabbitmq-0 (StatefulSet) |
Output Format
Present results as a table:
| Queue | Messages | Consumers | State |
|---|---|---|---|
| service:entity:persisted | 0 | 2 | running |
| service:entity:persisted.dead_letter | 47 | 0 | running |
Flag any issues:
- DLQ with messages > 0 → suggest
rabbitmq-triage-dlq - Main queue with 0 consumers → service may be down
- Main queue with growing messages → consumers may be slow