RabbitMQ
The RABBITMQ layer monitors RabbitMQ message brokers. OAP collects the metrics from RabbitMQ’s Prometheus / OpenMetrics endpoint, so each broker cluster and each broker node surfaces as a SkyWalking entity in this layer.
In Horizon’s sidebar this layer is named RabbitMQ. Its services are listed as RabbitMQ clusters and its instances as Nodes — a service is one RabbitMQ cluster, and each instance is one broker node inside it. The layer enables two scopes only: the Service (cluster) dashboard and the Instance (node) dashboard. There is no endpoint scope, no topology / map, and no traces or logs tab for this layer.
This page is the operator reference for the bundled RABBITMQ dashboard: what you see on each scope and what each widget means.
The widgets and metrics below are read from the bundled RABBITMQ template; if an operator has published a customized RABBITMQ template to OAP, the live dashboard reflects that copy instead. See Layer Dashboard Templates for how the bundled default, your local draft, and the OAP-published copy relate.
Service list
Before opening a cluster, the layer landing page lists every RabbitMQ cluster with four sortable columns, sorted by Queues by default:
- Queues — total queues across the cluster (
aggregate_labels(meter_rabbitmq_queues,sum)). - Channels — total open channels across the cluster (
aggregate_labels(meter_rabbitmq_channels,sum)). - Connections — total open connections across the cluster (
aggregate_labels(meter_rabbitmq_connections,sum)). - Unconfirmed — publisher messages awaiting confirmation across the cluster (
aggregate_labels(meter_rabbitmq_messages_unconfirmed,sum)).
Service dashboard
The cluster-level view for one selected RabbitMQ cluster.
- Memory Available Before Block (MB) — headroom in MB before the broker hits its memory high-watermark and starts blocking publishers (
meter_rabbitmq_memory_available_before_publisher_blocked). - Disk Available Before Block (GB) — headroom in GB before the broker hits its disk free-space limit and starts blocking publishers (
meter_rabbitmq_disk_space_available_before_publisher_blocked). - File Descriptors + Sockets — available file descriptors (
fds) and available TCP sockets (sockets), the two resource pools that gate how many connections the broker can still accept (meter_rabbitmq_file_descriptors_available,meter_rabbitmq_tcp_socket_available). - Ready Messages — messages ready to be delivered to consumers (
meter_rabbitmq_message_ready_delivered_consumers). - Pending Ack — messages delivered to consumers but not yet acknowledged (
meter_rabbitmq_message_unacknowledged_delivered_consumers). - Publish Pipeline — the publish path across four series:
published,confirmed,routed, andunconfirmed(meter_rabbitmq_messages_published,meter_rabbitmq_messages_confirmed,meter_rabbitmq_messages_routed,meter_rabbitmq_messages_unconfirmed). A growing gap between published and confirmed/routed flags a routing or confirmation problem. - Unroutable Messages — messages with no matching binding, split into
droppedandreturned(meter_rabbitmq_messages_unroutable_dropped,meter_rabbitmq_messages_unroutable_returned). - Queues — queue lifecycle across the cluster:
totalcurrently present, plus thedeclared,created, anddeletedrunning totals (meter_rabbitmq_queues,meter_rabbitmq_queues_declared_total,meter_rabbitmq_queues_created_total,meter_rabbitmq_queues_deleted_total). - Channels — channel lifecycle:
totalcurrently open, plus theopenedandclosedrunning totals (meter_rabbitmq_channels,meter_rabbitmq_channels_opened_total,meter_rabbitmq_channels_closed_total). - Connections — connection lifecycle:
totalcurrently open, plus theopenedandclosedrunning totals (meter_rabbitmq_connections,meter_rabbitmq_connections_opened_total,meter_rabbitmq_connections_closed_total).
Instance dashboard
The node-level view for one selected broker node. The cards across the top are single-value (latest) readings; the remaining widgets are time-series.
- Ready Messages — messages ready for delivery on this node, latest value (
latest(meter_rabbitmq_node_queue_messages_ready)). - Incoming Messages — incoming message rate on this node, latest value (
latest(meter_rabbitmq_node_incoming_messages)). - Outgoing Messages — outgoing message total on this node, latest value (
latest(meter_rabbitmq_node_outgoing_messages_total)). - Unacknowledged Messages — delivered-but-unacknowledged messages on this node, latest value (
latest(meter_rabbitmq_node_unacknowledged_messages)). - Connections / Publishers / Consumers — the node’s
connections,publishers, andconsumerscounts (latest(meter_rabbitmq_node_connections_total),latest(meter_rabbitmq_node_publisher_total),latest(meter_rabbitmq_node_consumer_total)). - Channels + Queues — the node’s
channelsandqueuescounts (latest(meter_rabbitmq_node_channel_total),latest(meter_rabbitmq_node_queue_total)). - Allocated Used % — percentage of the node’s allocated memory that is in use, latest value (
latest(meter_rabbitmq_node_allocated_used_percent)). - Memory (MB) — the node’s memory breakdown in MB:
used,unused,resident, andtotalallocated (meter_rabbitmq_node_allocated_used_bytes,meter_rabbitmq_node_allocated_unused_bytes,meter_rabbitmq_node_process_resident_memory_bytes,meter_rabbitmq_node_allocated_total_bytes). - Allocated By Type (MB) — allocated memory broken down by allocator type in MB, one series per type (
meter_rabbitmq_node_allocated_by_type). - Multi/Single-block Memory (MB) — allocator block usage in MB across
multi used,multi unused,single used, andsingle unused(meter_rabbitmq_node_allocated_multiblock_used,meter_rabbitmq_node_allocated_multiblock_unused,meter_rabbitmq_node_allocated_singleblock_used,meter_rabbitmq_node_allocated_singleblock_unused).
Requirements
The RABBITMQ dashboard is a pure consumer of what OAP reports — it invents no data, and a widget with no backing data simply reads no data. To populate it, OAP needs:
- Cluster (service-scope) metrics — the
meter_rabbitmq_*family (memory and disk headroom, file descriptors and sockets, ready / pending / unroutable messages, the publish pipeline, and queue / channel / connection lifecycle counters) that drives the service list and Service dashboard. - Node (instance-scope) metrics — the
meter_rabbitmq_node_*family (message counters, connections / publishers / consumers, channels / queues, and the allocator memory breakdown) that drives the Instance dashboard.
These metrics come from OAP’s RabbitMQ monitoring, which scrapes the broker’s Prometheus / OpenMetrics endpoint. See the RabbitMQ monitoring setup in the SkyWalking backend documentation for how to enable it. Each metric is queried at its own OAP scope; OAP does not roll a metric up across scopes, so the node-scope widgets stay empty until per-node data is reported.