Message brokers in the data-streams view
The Queues area (GET /v1/projects/{prj}/queues, Infrastructure, Queues and streams) reads one metric contract whatever the broker: messaging.queue.depth{queue, framework, state} (ready, unacked, dead), messaging.queue.oldest_age_seconds and messaging.consumer.lag_seconds. Every collector below keeps its own series and also writes these, so a broker shows next to the spans of the same destination (spans join on the queue name; framework is the engine).
Engine | How it is read | Queue name | ready | unacked | oldest age / lag |
|---|---|---|---|---|---|
RabbitMQ | management API ( | queue (+ | messages_ready | messages_unacknowledged | head message timestamp |
ActiveMQ classic | Jolokia ( | queue (+ | QueueSize | InFlightCount | none |
ActiveMQ Artemis | Jolokia ( | queue (+ | MessageCount | DeliveringCount | FirstMessageAge |
NATS JetStream | monitoring | stream (+ | consumer pending | ack pending | none |
Pulsar | admin topic stats ( | topic (+ | msgBacklog | unackedMessages | earliest message in backlog |
Kafka | consumer group lag ( | topic (+ | group lag | none | lag time |
Redis streams |
| stream (+ | group lag | group pending | oldest pending, lag time |
Amazon SQS | CloudWatch ( | queue name | messages visible | messages not visible | oldest message age |
Amazon Kinesis | CloudWatch ( | stream name | none | none | iterator age (lag) |
Azure Service Bus | Azure Monitor ( | queue or topic (entity), else namespace | ActiveMessages | none | none (dead: DeadletteredMessages) |
Google Pub/Sub | Cloud Monitoring ( | subscription id | num_undelivered_messages | none | oldest_unacked_message_age |
Notes:
Service Bus is asked for one series per entity (
EntityName eq '*'); the dead-letter count lands in statedead.Pub/Sub: list
pubsub.googleapis.com/subscription/num_undelivered_messages,.../oldest_unacked_message_ageand.../dead_letter_message_countin the gcp pull'smetrics.Amazon SNS has no backlog (it pushes); its pathways come from span links, and failed deliveries stay in the raw CloudWatch series.
A dead-letter queue is recognised by name (
*.dlq,*-dlq,*.dead,*-dead, or the project'squeue_dlq_patterns) or by statedead.Modules started from pod annotations get the same series.