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.
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.pywget 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:
- Server Monitoring - Stay on top of server outages and performance issues
- Out-of-the-Box Plugins - Monitor your entire app stack with our extensive list of integrations
- Nagios plugin - Execute thousands of Nagios plugins in Site24x7 without the need of running a Nagios server
- HAProxy plugin - Monitor performance metrics of your HAProxy databases
- MongoDB plugin - Monitor performance metrics of your MongoDB databases
- Out-of-the-box plugins - Monitor your entire app stack with our extensive list of integrations
- Create custom plugins for Linux and Windows