Monitoring RabbitMQ
You can monitor RabbitMQ instances by using the Instana RabbitMQ sensor. The RabbitMQ sensor is automatically deployed and installed after you install the Instana agent. You can view metrics that are related to the RabbitMQ instances in the Instana UI.
Support information
To make sure that the RabbitMQ sensor is compatible with your current setup, check the following support information sections:
Supported versions and support policy
The sensor supports RabbitMQ versions from 3.6.x to 4.0.
The following table shows the latest supported version and support policy:
Technology | Support policy | Latest version | Latest supported version |
---|---|---|---|
RabbitMQ | 45 days | 4.0.5 | 4.0.5 |
For more information about the support policy, see Support strategy for sensors.
Supported client-side tracing
For this technology, Instana supports client-side tracing for the following languages and runtimes:
Configuration
The following configurations are required to enable monitoring by the RabbitMQ sensor:
Enabling RabbitMQ Management plug-in
To collect the metrics from the RabbitMQ instance, enable the RabbitMQ Management plug-in. To enable the RabbitMQ Management plug-in, run the following command:
rabbitmq-plugins enable rabbitmq_management
Configuring sensor authentication
If the RabbitMQ management interface requires authentication, you can configure the sensor to use the credentials by adding the credentials to the agent config file <agent_install_dir>/etc/instana/configuration.yaml
as shown in the following example:
com.instana.plugin.rabbitmq:
user: 'guest'
password: 'guest'
Viewing metrics
To view the metrics, complete the following steps:
- In the Instana UI sidebar, select Infrastructure.
- Click a specific monitored host. You can see the host dashboard with all the collected metrics and monitored processes.
RabbitMQ node metrics
The following metrics are collected from each RabbitMQ node:
Configuration data
The following configuration data is collected from the RabbitMQ node:
- Ports
- Version
- Erlang Version
- Node Name
- Nodes (count)
- Queues (count)
- Channels (count)
Performance metrics
The RabbitMQ sensor collects metrics every 5 seconds, which is the default sampling rate of the RabbitMQ Server.
The RabbitMQ management has default data retention policies. The global data is retained at 5-second resolution for 10 minutes and 5 seconds, 1-minute resolution for 1 hour and 1 minute, and 10-minute resolution for approximately
8 hours. The basic data is retained at 5-second resolution for 1 minute and 5 seconds and 1-minute resolution for 1 hour. The detailed data is retained at 10-second resolution for 10 seconds. All three policies are mandatory and require
at least one retention pair, consisting of MaxAgeInSeconds
and SampleEveryNSeconds
. For more information, see the RabbitMQ documentation.
Messages
The following message metrics are collected from the RabbitMQ node:
Metric | Description |
---|---|
Published | Count of messages that are published (per 5 seconds). |
Delivered | Count of messages that are delivered (per 5 seconds). |
Acknowledged | Number of messages that are delivered to clients and acknowledged (per 5 seconds). |
Messages Status
The following message status metrics are collected from the RabbitMQ node:
Metric | Description |
---|---|
Ready | Number of messages that are ready to be delivered to clients. |
Unacknowledged | Number of messages that are delivered to clients, but not yet acknowledged. |
Total | Total number of messages that are in the queue. |
Ready Rate | Number of messages per second that are ready to be delivered to clients. |
Unacknowledged Rate | Number of messages per second that are delivered to clients, but not yet acknowledged. |
Total Rate | Count of the total messages per second that are in the queue. |
Overview
The following overview metrics are collected from the RabbitMQ node:
Metric | Description |
---|---|
Consumers | Number of consumers. |
Connections | Number of current connections to the RabbitMQ server. |
Nodes (metrics per node)
The following metrics are collected for each RabbitMQ node node:
Metric | Description |
---|---|
Used file descriptors | Count of file descriptors that are in use. |
Total file descriptors | Count of all file descriptors that are available. |
Erlang processes in use | Number of Erlang processes that are in use. |
Maximum number of Erlang processes | Maximum number of Erlang processes that are available. |
Used memory | Amount of memory that is used. |
Memory limit | Maximum memory that is available. |
Disk alarm threshold | Amount of unused disk space that must be maintained to avoid triggering an alarm. |
Disk free space | Amount of unused disk space. |
Sockets used | Count of file descriptors that are used as sockets. |
Total sockets | Count of file descriptors that are available for use as sockets. |
Queues (metrics per queue)
By default, queue monitoring is not enabled. To enable in-depth metric monitoring, inform the agent about the queues you want to monitor (up to 1000 queues). You can configure queues for monitoring in the agent configuration file <agent_install_dir>/etc/instana/configuration.yaml
:
com.instana.plugin.rabbitmq:
queuesRegex: '.*' # Regex pattern used for matching monitored queues
monitorQueues:
- queue: 'instana1' # name of the queue
vhost: '/' # name of the vhost, default is '/'
- queue: 'stan1' # name of the queue
vhost: '/' # name of the vhost, default is '/'
queuesRegex
: Optional regex pattern that is used for filtering queues by name. You can use it together with themonitorQueues
configuration.
The following metrics are collected for each queue:
Metric | Description |
---|---|
Messages ready | Number of messages that are ready to be delivered to clients. |
Messages unacknowledged | Number of messages that are delivered to clients, but not yet acknowledged. |
Messages total | Number of all messages that are in the queue. |
Consumers | Number of consumers that use messages from the queue. |
Health signatures
For each sensor, a curated knowledgebase of health signatures that are evaluated continuously against the incoming metrics and are used to raise issues or incidents that depend on the user impact.
Built-in events trigger issues or incidents based on failing health signatures on entities, and custom events trigger issues or incidents based on the thresholds of an individual metric of any selected entity.
For more information about built-events for the RabbitMQ Cluster, RabbitMQ Server, RabbitMQ Nodes, and RabbitMQ Queues, see the Built-in events reference.
RabbitMQ cluster metrics
The following metrics are collected from each RabbitMQ cluster:
Configuration data
The following configuration data is collected from the RabbitMQ cluster:
- Cluster Name
- Nodes (count)
Performance metrics
The following performance metrics are collected from the RabbitMQ cluster:
- Nodes Up (count)
- Nodes Down (count)
- Connections (count)
Overall messages
The following message metrics are collected from the RabbitMQ cluster:
Metric | Description |
---|---|
Overall published | Count of messages that are published across the cluster (per 5 seconds). |
Overall delivered | Count of messages that are delivered across the cluster (per 5 seconds). |
Overall acknowledged | Number of messages that are delivered to clients and acknowledged across the cluster (per 5 seconds). |
Overall messages status
The following message status metrics are collected from the RabbitMQ cluster:
Metric | Description |
---|---|
Overall ready | Number of messages that are ready to be delivered to clients across the cluster. |
Overall unacknowledged | Number of messages that are delivered to clients but not yet acknowledged across the cluster. |
Overall total | Total number of messages that are in all queues across the cluster. |
Overall ready rate | Number of messages per second that are ready to be delivered to clients across the cluster. |
Overall unacknowledged rate | Number of messages per second that are delivered to clients, but not yet acknowledged across the cluster. |
Overall total rate | Count of the total messages per second that are in all queues across the cluster. |
Overview
The following overview metrics are collected from the RabbitMQ cluster:
Metric | Description |
---|---|
Consumers | Number of consumers across the cluster. |
Connections | Number of current connections to the RabbitMQ cluster. |
Cluster nodes
The following node metrics are collected from the RabbitMQ cluster:
Metric | Description |
---|---|
Version | Version of the RabbitMQ node. |
File descriptors used | Count of file descriptors that are in use. |
Memory used | Amount of memory that is used. |
Sockets used | Count of file descriptors that are used as sockets. |
Erlang processes | Count of Erlang processes that are in use. |
Disk free | Amount of unused disk space. |
Disk alarm threshold | Amount of unused disk space that must be maintained to avoid triggering an alarm. |
Tracing
You can trace all requests automatically. For more information, see Tracing - supported technologies.