Dashboard
ApsaraMQ for RabbitMQ offers the dashboard feature for Enterprise Edition and Enterprise Platinum Edition instances through integration with Managed Service for Prometheus and Managed Service for Grafana from Application Real-Time Monitoring Service (ARMS). This feature lets you view various metrics for your instances, vhosts, queues, and exchanges. This helps you detect and locate issues early. This topic outlines the metrics available on the dashboard and how to use them.
Billing
The ApsaraMQ for RabbitMQ dashboard displays basic metrics from Managed Service for Prometheus. Since these metrics are provided free of charge, the dashboard feature is also free to use. For more information, see metrics and pay-as-you-go.
Limitations
The dashboard is available for serverless instances and for Enterprise and Platinum Edition subscription instances, but not for Professional Edition subscription instances.
Service-linked roles
When you view the dashboard, ApsaraMQ for RabbitMQ automatically creates the service-linked role AliyunServiceRoleForAmqpMonitoring.
-
If a service-linked role has not been created, ApsaraMQ for RabbitMQ automatically creates one for you so that you can use the ApsaraMQ for RabbitMQ dashboard feature.
-
If the service-linked role already exists, ApsaraMQ for RabbitMQ does not create it again.
For more information about service-linked roles, see Service-Linked Roles.
Metrics
Metric overview
The ApsaraMQ for RabbitMQ dashboard provides the following metrics:
-
Overview: Displays metrics such as the number of messages, connections, and consumers for an instance or vhost.
-
Connection: Displays the number of connections for an instance or vhost.
-
Exchange: Displays the number of inbound and outbound messages for an exchange.
-
Queue: Displays the number of messages, API calls, and consumers for a queue.
-
Consumer: Displays the results of message processing by consumers.
All metrics are reported per minute, except for rabbitmq_instance_api_tps_max, which is reported per second.
Overview
|
Metric type |
Metric name |
Unit |
Description |
Label |
|
gauge |
rabbitmq_instance_api_tps_max |
count/s |
Maximum transactions per second (TPS) for API calls to the instance in a one-minute period. This is the peak value from 60 samples collected at one-second intervals. |
{tenant_userid, instanceId} |
|
counter |
rabbitmq_connections_opened_total |
count |
Total number of connections opened. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_connections_closed_total |
count |
Total number of connections closed. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_channels_opened_total |
count |
Total number of channels opened. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_channels_closed_total |
count |
Total number of channels closed. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_queues_declared_total |
count |
Total number of queues declared. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_queues_deleted_total |
count |
Total number of queues deleted. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_exchange_declared_total |
count |
Total number of exchanges declared. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_exchange_deleted_total |
count |
Total number of exchanges deleted. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_exchange_bind_total |
count |
Total number of bindings added to exchanges. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_exchange_unbind_total |
count |
Total number of bindings removed from exchanges. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_queue_bind_total |
count |
Total number of bindings added to queues. |
{tenant_userid,instanceId,vhost} |
|
counter |
rabbitmq_queue_unbind_total |
count |
Total number of bindings removed from queues. |
{tenant_userid,instanceId,vhost} |
|
gauge |
rabbitmq_connections |
count |
Current number of open connections. |
{tenant_userid,instanceId,vhost} |
|
gauge |
rabbitmq_channels |
count |
Current number of open channels. |
{tenant_userid,instanceId,vhost} |
Connections
|
Metric type |
Metric name |
Unit |
Description |
Label |
|
gauge |
rabbitmq_connection_channels |
count |
Number of channels on a connection. |
{tenant_userid,instanceId,vhost,remoteAddress} |
Exchange
|
Metric type |
Metric name |
Unit |
Description |
Label |
|
counter |
rabbitmq_exchange_messages_published_in_total |
count |
Total number of messages published to an exchange. |
{tenant_userid,instanceId,vhost,exchangeName} |
|
counter |
rabbitmq_exchange_messages_published_out_total |
count |
Total number of messages routed from an exchange. |
{tenant_userid,instanceId,vhost,exchangeName} |
Queue
|
Metric type |
Metric name |
Unit |
Description |
Label |
|
counter |
rabbitmq_queue_messages_published_total |
count |
Total number of messages published to a queue. |
{tenant_userid,instanceId,vhost,queueName} |
|
gauge |
rabbitmq_queue_messages_ready |
count |
Number of messages in a queue that are ready to be delivered to consumers. |
{tenant_userid,instanceId,vhost,queueName} |
|
gauge |
rabbitmq_queue_messages_timing |
count |
Number of scheduled messages in a queue. |
{tenant_userid,instanceId,vhost,queueName} |
|
gauge |
rabbitmq_queue_messages_unacked |
count |
Number of messages delivered to a consumer but not yet acknowledged. |
{tenant_userid,instanceId,vhost,queueName} |
|
counter |
rabbitmq_queue_deliver_total |
count |
Total number of times the Basic.Consume command was called. |
{tenant_userid,instanceId,vhost,queueName} |
|
counter |
rabbitmq_queue_get_total |
count |
Total number of times the Basic.Get command was called. |
{tenant_userid,instanceId,vhost,queueName} |
|
counter |
rabbitmq_queue_ack_total |
count |
Total number of times the Basic.Ack command was called. |
{tenant_userid,instanceId,vhost,queueName} |
|
counter |
rabbitmq_queue_uack_total |
count |
Total number of times the Basic.Nack command was called. |
{tenant_userid,instanceId,vhost,queueName} |
|
counter |
rabbitmq_queue_recover_total |
count |
Total number of times the Basic.Recover command was called. |
{tenant_userid,instanceId,vhost,queueName} |
|
counter |
rabbitmq_queue_reject_total |
count |
Total number of times the Basic.Reject command was called. |
{tenant_userid,instanceId,vhost,queueName} |
|
gauge |
rabbitmq_queue_consumers |
count |
Current number of consumers on a queue. |
{tenant_userid,instanceId,vhost,queueName} |
Consumer
|
Metric type |
Metric name |
Unit |
Description |
Label |
|
gauge |
rabbitmq_consumer_acked_process_time_avg |
count |
Average processing time for acknowledged messages. |
{tenant_userid,instanceId,vhost,queueName,remoteAddress,ackType} |
|
gauge |
rabbitmq_consumer_unacked_process_time_avg |
count |
Average processing time for unacknowledged messages. |
{tenant_userid,instanceId,vhost,queueName,remoteAddress,ackType} |
|
gauge |
rabbitmq_consumer_acked_messages |
count |
Number of acknowledged messages. |
{tenant_userid,instanceId,vhost,queueName,remoteAddress,ackType} |
|
gauge |
rabbitmq_consumer_unacked_messages |
count |
Number of unacknowledged messages. |
{tenant_userid,instanceId,vhost,queueName,remoteAddress} |
Metric types
The metrics for ApsaraMQ for RabbitMQ are fully compatible with the open-source Prometheus standard. The supported metric types are counter and gauge.
-
counter: A cumulative metric that only increases. For example, the number of API calls.
-
gauge: A metric that can increase or decrease, representing an instantaneous value. For example, the TPS for API calls.
Labels
The following list describes the labels for ApsaraMQ for RabbitMQ metrics:
-
tenant_userid: Your Alibaba Cloud account ID.
-
instanceId: The ApsaraMQ for RabbitMQ instance ID.
-
vhost: The name of the vhost in the ApsaraMQ for RabbitMQ instance.
-
remoteAddress: The IP address of the ApsaraMQ for RabbitMQ client.
-
exchangeName: The name of the exchange in the ApsaraMQ for RabbitMQ instance.
-
queueName: The name of the queue in the ApsaraMQ for RabbitMQ instance.
-
ackType: The response from a client after it processes a message.
Dashboard
Prerequisites
-
An ApsaraMQ for RabbitMQ instance has been created. For more information, see Instance Management.
-
A vhost, a queue, and an exchange have been created on the ApsaraMQ for RabbitMQ instance. For more information, see Vhost Management, Exchange Management, and Queue Management.
-
ARMS has been activated. For more information, see Activate ARMS for Prometheus Monitoring.
Procedure
Log on to the ApsaraMQ for RabbitMQ console. In the left-side navigation pane, click Instances.
In the top navigation bar of the Instances page, select the region where the instance that you want to manage resides. Then, in the instance list, click the name of the instance that you want to manage.
-
In the left navigation bar, click Dashboard. On the Dashboard page, view the dashboard.
-
You can filter the dashboard by vhost, exchange, queue, and time range.
-
To filter by vhost, exchange, or queue: On the Dashboard page, use the Vhost, Exchange, or Queue drop-down list to select or enter the desired resource. If you leave these fields blank, the dashboard displays metrics for all vhosts, exchanges, and queues in the instance. The Overview section of the dashboard displays four key metrics: Ready messages, Current connections, Current channels, and Current consumers. The top of the page also provides quick links, such as Metric Details, Troubleshoot with Message Trace, and Import to Grafana Pro.
-
To filter by time range: In the upper-right corner of the Dashboard page, click the time picker. From the drop-down list, select a relative time range, such as Last 5 minutes, Last 12 hours, or Last 30 days. You can also specify a custom absolute time range by setting a start and end time.
After you configure the filters, the Dashboard page displays the metrics for the specified vhost, exchange, queue, or time range. For metric descriptions, see Metric Details.
-
Dashboard metrics
Dashboard metrics are stored in Managed Service for Prometheus under your Alibaba Cloud account. Follow these steps to query them:
-
Log on to the ARMS console. In the navigation pane on the left, click Integration Center.
-
On the Integration Center page, enter
RabbitMQin the search box and click the
search icon. -
In the search results, select the cloud service to integrate, such as ApsaraMQ for RabbitMQ (Enterprise Edition). For more details, see Step 1: Integrate cloud service monitoring data.
-
After the integration is successful, click Integration Management in the navigation pane on the left.
-
On the Integrated Environments tab, in the Cloud Service Environments list, click the name of the target environment.
-
On the Component Management tab, in the Basic Information section, click the region next to Prometheus Instance.
-
The {key, select, RAM {RAM} Overview {Overview} Identities {Identities} Users {Users} Groups {Groups} Roles {Roles} Settings {Settings} Permissions {Permissions} Grants {Grants} Troubleshoot {Troubleshooting} Policies {Policies} Integrations {Integrations} Providers {SSO} Applications {OAuth (Preview)} CloudSSO {CloudSSO} AccessAnalyzing {Access Analysis} Analyzers {Analyzers} Findings {Findings} Beta {Beta} Governance {Cloud Governance Center} other {{key}} } tab lists available data access methods. This page displays the endpoint URLs for the Prometheus instance, including the Remote Read URL, Remote Write URL, Push Gateway URL, OpenTelemetry URL, and HTTP API URL (for Grafana). The page provides URLs for both public and private networks for each endpoint. The URL format starts with a base such as
https://cn-hangzhou.arms.aliyuncs.comand includes an instance identifier parameter. Each section includes a link to a user guide, and you can generate a token at the bottom of the page.
Self-managed Grafana integration
All metrics for ApsaraMQ for RabbitMQ are stored in Managed Service for Prometheus in your Alibaba Cloud account. Follow the steps in the Dashboard metrics section to integrate the cloud service and obtain the environment name and HTTP API URL. You can then use the API to import the dashboard metrics for ApsaraMQ for RabbitMQ into your self-managed Grafana. For more information, see Access Prometheus monitoring data by using HTTP API URLs.