Application monitoring
How to monitor RABBITMQ?


ServicePilot appmon-rabbitmq


What is RabbitMQ?

RabbitMQ is an Erlang-based open source message broker software that implements AMQP (Advanced Message Queuing Protocol) as well as STOMP, MQTT and other protocols.

It is released under the Mozilla Public License.

RabbitMQ monitoring

This package monitors RabbitMQ by querying the RabbitMQ Management Plugin. The ServicePilot Agent is configured to use the RabbitMQ Management Plugin web API to obtain availability and performance indicators. A standalone RabbitMQ deployment or a cluster of servers can be monitored using a single instance of this package.

For each RabbitMQ resource, the follow statistics are gathered:

  • RabbitMQ deployment overview

    • Connections: The number of connections to the RabbitMQ cluster. Any drop in this number means that some consumers might be down.
    • Channels: Channels currently open.
    • Queues: The number of queues that are created across the node in the cluster. It helps in identifying if there are queues going down in the cluster or if there are new queues being created.
    • Exchanges: message routing agents, defined by the virtual host within RabbitMQ.
    • Consumers: Number of customers
    • Listeners: Number of listeners listening to RabbitMQ Queue for any incoming messages.
  • Per node details

    • Uptime: Time since the Erlang VM started, in milliseconds
      • Memory: Memory used in bytes and point at which the memory alarm will go off
      • File descriptors: File descriptors used and available
      • Sockets: Number of file descriptors used and available for use as sockets
      • Processes: Number of Erlang processes in use and Maximum
      • Disk: Disk free space and alarm threshhold
      • Connections: Current connections usage
      • Channels: Current channels usage
      • Queues: Number of queues declared, created and deleted
      • Garbage collection: GC run and space reclaimed by GC
      • IO usage: Disk IO statistics
  • Per exchange

    • Publishes in: Count of messages published "in" to an exchange.
    • Publishes out: Count of messages published "out" of an exchange.
  • Per queue

    • Consumers: Number of queue consumers (total count)
      • Memory: Queue memory utilisation
      • Nodes: Number of follower replicas if the queue is mirrored
      • Messages: Sum of ready and unacknowledged messages
Application monitoring RABBITMQ 0

Application monitoring RABBITMQ 1