Prometheus-Rabbitmq-Exporter

rabbitmq_exporter is a Prometheus exporter for rabbitmq metrics. This chart bootstraps a rabbitmq_exporter deployment on a Kubernetes cluster using the Helm package manager.

This document is intended to guide you on which RabbitMQ and system metrics are most important to monitor. Monitoring your RabbitMQ installation is an effective means to intercept issues before they affect the rest of your environment and, eventually, your users.

Infrastructure and Kernel Metrics

First step towards a useful monitoring system starts with infrastructure and kernel metrics. There are quite a few of them but some are more important than others. The following metrics should be monitored on all nodes in a RabbitMQ cluster and, if possible, all nodes that host applications:

  • CPU (idle, user, system, iowait)
  • Memory (free, cached, buffered)
  • Disk I/O (reads & writes per unit time, I/O wait percentages)
  • Free Disk Space
  • File descriptors used by beam.smp vs. max system limit
  • Network throughput (bytes received, bytes sent) vs. maximum network link throughput
  • VM statistics (dirty page flushes, writeback volume)
  • System load average (/proc/loadavg)

There is no shortage of existing tools (such as Graphite or Datadog) that collect infrastructure and kernel metrics, store and visualize them over periods of time.

RabbitMQ Metrics

The RabbitMQ management plugin provides a starting point for monitoring RabbitMQ metrics. One limitation, however, is that only up to one day's worth of metrics are stored. Storing historical metrics can be an important tool to determine the root cause of issues affecting your users or to plan for future capacity.

RabbitMQ metrics are made available through the HTTP API via the api/queues/vhost/qname endpoint. It is recommended to collect metrics at 60-second intervals because more frequent collection may place too much load on the RabbitMQ server and negatively affect performance.

RabbitMQ Features

  • Asynchronous Messaging

Supports multiple messaging protocols, message queuing, delivery acknowledgment, flexible routing to queues, multiple exchange type.

  • Developer Experience

Deploy with BOSH, Chef, Docker, and Puppet. Develop cross-language messaging with favorite programming languages such as Java, .NET, PHP, Python, JavaScript, Ruby, Go, and many others.

  • Distributed Deployment

Deploy as clusters for high availability and throughput; federate across multiple availability zones and regions.

  • Enterprise & Cloud Ready

Pluggable authentication, authorization, supports TLS and LDAP. Lightweight and easy to deploy in public and private clouds.

  • Tools & Plugins

A diverse array of tools and plugins supporting continuous integration, operational metrics, and integration to other enterprise systems. Flexible plug-in approach for extending RabbitMQ functionality.

  • Management & Monitoring

HTTP-API, command line tool, and UI for managing and monitoring RabbitMQ.

RabbitMQ Commercial Services

Commercial Distribution

Pivotal Software produces a commercial distribution called Pivotal RabbitMQ, as well as a version that deploys in Pivotal Cloud Foundry. These distributions include all of the features of the open source version, with RabbitMQ for Pivotal Cloud Foundry providing some additional management features. Support agreements are part of the commercial licensing.

Support + Hosting

Pivotal Software provides support for open source RabbitMQ. The following companies provide technical support and/or cloud hosting of open source RabbitMQ: CloudAMQP, Erlang Solutions, Google Cloud Platform. RabbitMQ can also be deployed in AWS and Microsoft Azure.

Training

The following companies provide free, virtual, or instructor-led courses for RabbitMQ: Pivotal Software, Erlang Solutions, NetCom Learning, Skills Matter, LearnQuest and Open Source Architect.

Tell us about a new Kubernetes application

Newsletter

Never miss a thing! Sign up for our newsletter to stay updated.

About

Discover and share new Kubernetes applications

Navigation