RabbitMQ Monitoring

Optimize the performance of your RabbitMQ instances with all-at-once view of key metrics.

Start 30-day free trial Try now, sign up in 30 seconds

RabbitMQ is a message broker tool that routes messages between producers and consumers. It is open source and functions based on the Advanced Message Queuing Protocol (AMQP).

This document details the following:

Performance Monitoring Metrics

Take informed troubleshooting decisions by keeping track of critical metrics including:

File Descriptors Used

Knowing the total amount of file descriptors used will prove helpful to ensure intact access to input/output resources such as files.

Memory Used

The total amount of memory used by the queuing service (in bytes) helps to avoid sudden memory alarms and throttled connections.

Queued Messages

The average number of Erlang processes waiting to run in a queue. For ease of understanding, they are numbered by depicting them as processes.

Sockets Used

The total number of file descriptors used as sockets is given by the metric sockets_used.

Partitions

partitions give the total number of network partitions that this node is seeing. With this metric, you can ensure your RabbitMQ cluster remains available at all times.

Consumers

The published messages are routed by RabbitMQ to another part of your application, called consumers.

Ready Messages

The total number of messages_ready ready to be delivered/available to consumers.

Unacknowledged Messages

messages_unacknowledged gives the number of messages a queue has delivered without receiving an acknowledgment from a consumer

Message Rate

messages_rate provides a count of the total messages that are in the queue, be it unacknowledged, delivered, acknowledged, or redelivered.

Prerequisites

  • Download and install the Site24x7 server monitoring agent (Linux | Windows) on the server where you plan to run the plugin.

Plugin Installation

  • Create a folder named rabbitmq.
  • Download the rabbitmq.py and the rabbitmq.cfg files from our GitHub repository and place them in the rabbitmq folder.
    wget https://raw.githubusercontent.com/site24x7/plugins/master/rabbitmq/rabbitmq.py && sed -i "1s|^.*|#! $(which python3)|" rabbitmq.py
    wget https://raw.githubusercontent.com/site24x7/plugins/master/rabbitmq/rabbitmq.cfg
  • To check if the plugin is working, execute the command below with appropriate arguments, and check for a valid JSON output with applicable metrics and their corresponding values.
    python rabbitmq.py --host "localhost" --port "15672" --username "guest" --password "guest"
  • Add the applicable configurations in the rabbitmq.cfg file.
    [rabbitmq]
    host = "localhost"
    port = "15672"
    username = "guest"
    password = "guest"
  • Follow the steps in this article to learn how to run the Python script on a Windows server. You don't need to do this for Linux.
  • Move the rabbitmq folder to the Site24x7 server monitoring plugin directory.

    For Linux: /opt/site24x7/monagent/plugins/

    For Windows: C:\Program Files (x86)\Site24x7\WinAgent\monitoring\plugins\

The agent will automatically execute the plugin within five minutes and send performance data to the Site24x7 data center.

Plugin Contribution

Feel free to contribute to our existing plugin and come up with suggestions or feedback on our Community.

Related plugins: