rabbitmq

package
v0.52.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 6, 2023 License: GPL-3.0 Imports: 10 Imported by: 1

README

RabbitMQ collector

RabbitMQ is an open-source message broker.

This module monitors one or more RabbitMQ instances, depending on your configuration.

It collects data using an HTTP-based API provided by the management plugin. The following endpoints are used:

  • /api/overview
  • /api/node/{node_name}
  • /api/vhosts
  • /api/queues (disabled by default)

Requirements

RabbitMQ with enabled management plugin.

Metrics

All metrics have "rabbitmq." prefix.

Labels per scope:

  • global: no labels.
  • vhost: vhost.
  • queue: vhost, queue.
Metric Scope Dimensions Units
messages_count global ready, unacknowledged messages
messages_rate global ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable messages/s
objects_count global channels, consumers, connections, queues, exchanges messages
connection_churn_rate global created, closed operations/s
channel_churn_rate global created, closed operations/s
queue_churn_rate global created, deleted, declared operations/s
file_descriptors_count global available, used fd
sockets_count global available, used sockets
erlang_processes_count global available, used processes
erlang_run_queue_processes_count global length processes
memory_usage global used bytes
disk_space_free_size global free bytes
vhost_messages_count vhost ready, unacknowledged messages
vhost_messages_rate vhost ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable messages/s
queue_messages_count queue ready, unacknowledged, paged_out, persistent messages
queue_messages_rate queue ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable messages/s

Configuration

Edit the go.d/rabbitmq.conf configuration file using edit-config from the Netdata config directory, which is typically at /etc/netdata.

cd /etc/netdata # Replace this path with your Netdata config directory
sudo ./edit-config go.d/rabbitmq.conf

Here is an example for 2 servers:

jobs:
  - name: local
    url: http://localhost:15672
    collect_queues_metrics: no

  - name: remote
    url: http://203.0.113.10:15672
    collect_queues_metrics: no

This collector can also collect per-vhost per-queue metrics, which is disabled by default (collect_queues_metrics). Enabling this can introduce serious overhead on both netdata and rabbitmq if many queues are configured and used.

For all available options, see the module configuration file.

Troubleshooting

To troubleshoot issues with the rabbitmq collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
    
  • Switch to the netdata user.

    sudo -u netdata -s
    
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m rabbitmq
    

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config added in v0.5.0

type Config struct {
	web.HTTP      `yaml:",inline"`
	CollectQueues bool `yaml:"collect_queues_metrics"`
}

type RabbitMQ added in v0.5.0

type RabbitMQ struct {
	module.Base
	Config `yaml:",inline"`
	// contains filtered or unexported fields
}

func New

func New() *RabbitMQ

func (*RabbitMQ) Charts added in v0.5.0

func (r *RabbitMQ) Charts() *module.Charts

func (*RabbitMQ) Check added in v0.5.0

func (r *RabbitMQ) Check() bool

func (*RabbitMQ) Cleanup added in v0.5.0

func (r *RabbitMQ) Cleanup()

func (*RabbitMQ) Collect added in v0.5.0

func (r *RabbitMQ) Collect() map[string]int64

func (*RabbitMQ) Init added in v0.5.0

func (r *RabbitMQ) Init() bool

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL