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:

Table 1. 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:

  1. In the Instana UI sidebar, select Infrastructure.
  2. 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 the monitorQueues 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.