Data configurationGrafana integrationsIntegrations referenceRabbitMQ integration

RabbitMQ integration for Grafana Cloud

RabbitMQ is the most widely deployed open source message broker. It supports multiple messaging protocols, and can be deployed in distributed and federated configurations to meet high-scale, high-availability requirements.

Install RabbitMQ integration for Grafana Cloud

  1. In your Grafana instance, Click Integrations and Connections (lightning bolt icon), then click on install integration on RabbitMQ tile.
  2. Wait for the integration to be installed and then follow the steps shown to setup Grafana Agent to automatically scrape and send RabbitMQ metrics to your Cloud Instance.

Pre-install configuration for the RabbitMQ integration

This integration monitors a RabbitMQ Cluster using the built-in Prometheus metrics collector, shipped natively with RabbitMQ as of version 3.8.0. It provides two dashboards, one that provides a general overview of the cluster health, and other that focus on memory allocators.

In order to enable the Prometheus metrics collector in your Cluster, please run the following command.

rabbitmq-plugins enable rabbitmq_prometheus

Post-install configuration for the RabbitMQ integration

In the agent configuration file, the agent must be pointed to each node that composes the RabbitMQ Cluster, such as rabbitmqnode1host:15692 in the example below, that exposes a /metrics endpoint. In case you are deploying multiple grafana agents on different nodes for this integration, make sure to keep the target for each node different otherwise the dashboards may show some information incorrectly for different nodes.

metrics:
  wal_directory: /tmp/wal
  configs:
    - name: integrations
      scrape_configs:
        - job_name: integrations/rabbitmq
          static_configs:
            - targets: ['rabbitmqnode1host:15692', 'rabbitmqnode2host:15692', 'rabbitmqnode3host:15692']
      remote_write:
        - url: http://cortex:9009/api/prom/push

Dashboards

This integration includes the following dashboards.

  • Erlang-Memory-Allocators
  • RabbitMQ-Overview

RabbitMQ Overview

image

Erlang Memory Allocators

image

Metrics

Below is a list of the metrics used on the dashboards and in alerts of the integration and are automatically written to your Grafana Cloud instance.

  • erlang_vm_allocators
  • erlang_vm_dist_node_state
  • rabbitmq_build_info
  • rabbitmq_channel_consumers
  • rabbitmq_channel_get_ack_total
  • rabbitmq_channel_get_empty_total
  • rabbitmq_channel_get_total
  • rabbitmq_channel_messages_acked_total
  • rabbitmq_channel_messages_confirmed_total
  • rabbitmq_channel_messages_delivered_ack_total
  • rabbitmq_channel_messages_delivered_total
  • rabbitmq_channel_messages_published_total
  • rabbitmq_channel_messages_redelivered_total
  • rabbitmq_channel_messages_unconfirmed
  • rabbitmq_channel_messages_unroutable_dropped_total
  • rabbitmq_channel_messages_unroutable_returned_total
  • rabbitmq_channels
  • rabbitmq_channels_closed_total
  • rabbitmq_channels_opened_total
  • rabbitmq_connections
  • rabbitmq_connections_closed_total
  • rabbitmq_connections_opened_total
  • rabbitmq_disk_space_available_bytes
  • rabbitmq_identity_info
  • rabbitmq_process_max_fds
  • rabbitmq_process_max_tcp_sockets
  • rabbitmq_process_open_fds
  • rabbitmq_process_open_tcp_sockets
  • rabbitmq_process_resident_memory_bytes
  • rabbitmq_queue_messages_published_total
  • rabbitmq_queue_messages_ready
  • rabbitmq_queue_messages_unacked
  • rabbitmq_queues
  • rabbitmq_queues_created_total
  • rabbitmq_queues_declared_total
  • rabbitmq_queues_deleted_total
  • rabbitmq_resident_memory_limit_bytes

Alerts

The integration also comes packaged with a number of handy alerts.

Group: ClusterAlerts

AlertDescription
RabbitmqMemoryHighWarning: Rabbitmq memory high (instance {{ $labels.instance }})
RabbitmqFileDescriptorsUsageWarning: Rabbitmq file descriptors usage (instance {{ $labels.instance }})
RabbitmqUnroutableMessagesWarning: Rabbitmq unroutable messages (instance {{ $labels.instance }})
RabbitmqNodeNotDistributedCritical: Rabbitmq node not distributed (instance {{ $labels.instance }})
RabbitmqNodeDownCritical: Rabbitmq node down (instance {{ $labels.instance }})

Cost

By connecting your RabbitMQ instance to Grafana Cloud you might incur charges. To view information on the number of active series that your Grafana Cloud account uses for metrics included in each Cloud tier, see Active series and dpm usage and Cloud tier pricing.