ApsaraMQ for RabbitMQ can integrate with Managed Service for Prometheus and Managed Service for Grafana that are provided by Application Real-Time Monitoring Service (ARMS) to provide the dashboard feature. Managed Service for Prometheus is used to monitor metrics and Managed Service for Grafana is used to store and display metrics. You can use the dashboard feature of ApsaraMQ for RabbitMQ to view various metrics of Enterprise Edition and Enterprise Platinum Edition instances, vhosts, queues, and exchanges. This way, you can troubleshoot issues at the earliest opportunity. This topic describes the metrics provided by the dashboard feature and how to use the metrics.
Usage notes
Supported instance editions
Enterprise Edition
Enterprise Platinum Edition
Service-linked roles
When you use the dashboard feature of ApsaraMQ for RabbitMQ, the service-linked role AliyunServiceRoleForAmqpMonitoring is required.
If the service-linked role is not created, ApsaraMQ for RabbitMQ automatically creates the role for you. This way, you can use the dashboard feature of ApsaraMQ for RabbitMQ as expected.
If the service-linked role is created, ApsaraMQ for RabbitMQ does not re-create the role for you.
For more information about service-linked roles, see Service-linked roles.
Billing rules
Metrics that are displayed on the dashboard of ApsaraMQ for RabbitMQ are basic metrics in Managed Service for Prometheus. You are not charged for basic metrics in Managed Service for Prometheus. Therefore, you can use the dashboard feature of ApsaraMQ for RabbitMQ free of charge. For more information, see Metrics and Pay-as-you-go.
Metric details
Overview
The following metrics are provided by the dashboard feature of ApsaraMQ for RabbitMQ:
Overview: displays metrics such as the number of messages, the number of connections, and the number of consumers by instance or vhost.
Connection: displays the number of connections by instance or vhost.
Exchange: displays the number of inflow messages and the number of outflow messages by exchange.
Queue: displays the number of messages, the number of API calls, and the number of consumers by queue.
Consumer: displays the consumption results of messages.
All metrics except for the rabbitmq_instance_api_tps_max metric are displayed in minutes. The rabbitmq_instance_api_tps_max metric is displayed in seconds.
Metrics
Metric type | Metric name | Unit | Description | Label |
gauge | rabbitmq_instance_api_tps_max | count/s | The maximum transactions per second (TPS) in a minute when API operations are called. Rule for determining the value: The system collects one TPS value every second based on a 1-minute cycle. The maximum value among the 60 values is used. | {tenant_userid, instanceId} |
counter | rabbitmq_connections_opened_total | count | The number of open connections. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_connections_closed_total | count | The number of closed connections. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_channels_opened_total | count | The number of open channels. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_channels_closed_total | count | The number of closed channels. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_queues_declared_total | count | The number of created queues. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_queues_deleted_total | count | The number of deleted queues. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_exchange_declared_total | count | The number of created exchanges. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_exchange_deleted_total | count | The number of deleted exchanges. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_exchange_bind_total | count | The number of bindings added to the exchange. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_exchange_unbind_total | count | The number of bindings removed from the exchange. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_queue_bind_total | count | The number of bindings added to the queue. | {tenant_userid,instanceId,vHost} |
counter | rabbitmq_queue_unbind_total | count | The number of bindings removed from the queue. | {tenant_userid,instanceId,vHost} |
gauge | rabbitmq_connections | count | The total number of open connections. | {tenant_userid,instanceId,vHost} |
gauge | rabbitmq_channels | count | The total number of open channels. | {tenant_userid,instanceId,vHost} |
Connections
Metric type | Metric name | Unit | Description | Label |
gauge | rabbitmq_connection_channels | count | The number of channels created on the connection. | {tenant_userid,instanceId,vHost,remoteAddress} |
Exchanges
Metric type | Metric name | Unit | Description | Label |
counter | rabbitmq_exchange_messages_published_in_total | count | The number of inflow messages to the exchange. | {tenant_userid,instanceId,vHost,exchangeName} |
counter | rabbitmq_exchange_messages_published_out_total | count | The number of outflow messages from the exchange. | {tenant_userid,instanceId,vHost,exchangeName} |
Queues
Metric type | Metric name | Unit | Description | Label |
counter | rabbitmq_queue_messages_published_total | count | The number of messages sent to the queue. | {tenant_userid,instanceId,vHost,queueName} |
gauge | rabbitmq_queue_messages_ready | count | The number of ready messages in the queue. | {tenant_userid,instanceId,vHost,queueName} |
gauge | rabbitmq_queue_messages_timing | count | The number of scheduled messages in the queue. | {tenant_userid,instanceId,vHost,queueName} |
gauge | rabbitmq_queue_messages_unacked | count | The number of unacknowledged messages in the queue. | {tenant_userid,instanceId,vHost,queueName} |
counter | rabbitmq_queue_deliver_total | count | The number of times that the BasicConsume operation is called. | {tenant_userid,instanceId,vHost,queueName} |
counter | rabbitmq_queue_get_total | count | The number of times that the BasicGet operation is called. | {tenant_userid,instanceId,vHost,queueName} |
counter | rabbitmq_queue_ack_total | count | The number of times that the BasicAck operation is called. | {tenant_userid,instanceId,vHost,queueName} |
counter | rabbitmq_queue_uack_total | count | The number of times that the BasicNack operation is called. | {tenant_userid,instanceId,vHost,queueName} |
counter | rabbitmq_queue_recover_total | count | The number of times that the BasicRecover operation is called. | {tenant_userid,instanceId,vHost,queueName} |
counter | rabbitmq_queue_reject_total | count | The number of times that the BasicReject operation is called. | {tenant_userid,instanceId,vHost,queueName} |
gauge | rabbitmq_queue_consumers | count | The total number of consumers in the queue. | {tenant_userid,instanceId,vHost,queueName} |
Consumers
Metric type | Metric name | Unit | Description | Label |
gauge | rabbitmq_consumer_acked_process_time_avg | count | The average processing time of messages for which responses are returned. | {tenant_userid,instanceId,vHost,queueName,remoteAddress,ackType} |
gauge | rabbitmq_consumer_unacked_process_time_avg | count | The average processing time of messages for which no responses are returned. | {tenant_userid,instanceId,vHost,queueName,remoteAddress,ackType} |
gauge | rabbitmq_consumer_acked_messages | count | The number of messages for which responses are returned. | {tenant_userid,instanceId,vHost,queueName,remoteAddress,ackType} |
gauge | rabbitmq_consumer_unacked_messages | count | The number of messages for which no responses are returned. | {tenant_userid,instanceId,vHost,queueName,remoteAddress} |
Metric types
The standard that is used to define metrics in ApsaraMQ for RabbitMQ complies with the standard that is used to define metrics in open source Prometheus. The metric types that ApsaraMQ for RabbitMQ provides include counters and gauges.
counter: a cumulative metric whose value only increases. Example: the number of API calls.
gauge: a metric whose value can increase or decrease. The value of a gauge indicates the instantaneous value of a statistical object. Example: the TPS for API calls.
Labels
The following items describe the labels of metrics in ApsaraMQ for RabbitMQ:
tenant_userid: the ID of the Alibaba Cloud account.
instanceId: the ID of the ApsaraMQ for RabbitMQ instance.
vHost: the name of the vhost on the ApsaraMQ for RabbitMQ instance.
remoteAddress: the IP address of the ApsaraMQ for RabbitMQ client.
Exchange: the name of the exchange on the ApsaraMQ for RabbitMQ instance.
queueName: the name of the queue on the ApsaraMQ for RabbitMQ instance.
ackType: the message consumption result returned by the client.
View the dashboard
Prerequisites
An ApsaraMQ for RabbitMQ instance is created. For more information, see Manage instances.
A vhost, a queue, and an exchange are created and available on the ApsaraMQ for RabbitMQ instance. For more information, see Manage vhosts, Manage exchanges, and Manage queues.
ARMS is activated. For more information, see Activate ARMS.
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-side navigation pane, click Dashboard. On the Dashboard page, view the dashboard.
Specify a vhost, exchange, queue, and time range to view the dashboard based on your business requirements.
Specify a vhost, exchange, or queue: On the Dashboard page, click the VirtualHost, ExchangeName, or QueueName drop-down list and enter the name of the vhost, exchange, or queue that you want to view in the corresponding field. If you do not enter the name of a vhost, exchange, or queue, the metrics of all vhosts, exchanges, and queues on the instance are displayed.
Specify a time range: In the upper-right corner of the Dashboard page, click the time picker. In the drop-down list that appears, select a predefined 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 the start time and end time.
After the settings are configured, you can view the metrics for the specified vhost, exchange, queue, or time range on the Dashboard page. For information about the description of metrics, see Metric details.
How do I view the details of metrics provided by the dashboard feature of ApsaraMQ for RabbitMQ?
All metric data displayed on the dashboard of ApsaraMQ for RabbitMQ is stored in Managed Service for Prometheus in your Alibaba Cloud account. To view the data, perform the following steps:
Log on to the ARMS console.
In the left-side navigation pane, choose
.On the Instances page, click the instance named
cloud-product-promethous_$RegionID
to view the details of the metrics.
How do I import metric data provided by the dashboard of ApsaraMQ for RabbitMQ to a self-managed Grafana system?
All metric data provided by the dashboard feature of ApsaraMQ for RabbitMQ is stored in Managed Service for Prometheus in your Alibaba Cloud account. You can call the API operations provided by Managed Service for Prometheus to import the metric data provided by the dashboard feature of ApsaraMQ for RabbitMQ to a self-managed Grafana system.
For more information, see Import data from Managed Service for Prometheus to a local Grafana system.