summaryrefslogtreecommitdiffstats
path: root/collectors/python.d.plugin/rabbitmq/README.md
blob: 19df65694d4b74475cfbc44d7217853404091879 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<!--
title: "RabbitMQ monitoring with Netdata"
custom_edit_url: "https://github.com/netdata/netdata/edit/master/collectors/python.d.plugin/rabbitmq/README.md"
sidebar_label: "rabbitmq-python.d.plugin"
learn_status: "Published"
learn_topic_type: "References"
learn_rel_path: "References/Collectors references/Message brokers"
-->

# RabbitMQ monitoring with Netdata

Collects message broker global and per virtual host metrics.


Following charts are drawn:

1.  **Queued Messages**

    -   ready
    -   unacknowledged

2.  **Message Rates**

    -   ack
    -   redelivered
    -   deliver
    -   publish

3.  **Global Counts**

    -   channels
    -   consumers
    -   connections
    -   queues
    -   exchanges

4.  **File Descriptors**

    -   used descriptors

5.  **Socket Descriptors**

    -   used descriptors

6.  **Erlang processes**

    -   used processes

7.  **Erlang run queue**

    -   Erlang run queue

8.  **Memory**

    -   free memory in megabytes

9.  **Disk Space**

    -   free disk space in gigabytes


Per Vhost charts:

1.  **Vhost Messages**

    -   ack
    -   confirm
    -   deliver
    -   get
    -   get_no_ack
    -   publish
    -   redeliver
    -   return_unroutable

2. Per Queue charts:

    1. **Queued Messages**

        - messages
        - paged_out
        - persistent
        - ready
        - unacknowledged

    2. **Queue Messages stats**

        -   ack
        -   confirm
        -   deliver
        -   get
        -   get_no_ack
        -   publish
        -   redeliver
        -   return_unroutable

## Configuration

Edit the `python.d/rabbitmq.conf` configuration file using `edit-config` from the Netdata [config
directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md), which is typically at `/etc/netdata`.

```bash
cd /etc/netdata   # Replace this path with your Netdata config directory, if different
sudo ./edit-config python.d/rabbitmq.conf
```

When no configuration file is found, module tries to connect to: `localhost:15672`.

```yaml
socket:
  name     : 'local'
  host     : '127.0.0.1'
  port     :  15672
  user     : 'guest'
  pass     : 'guest'
```

---

### Per-Queue Chart configuration

RabbitMQ users with the "monitoring" tag cannot see all queue data. You'll need a user with read permissions. 
To create a dedicated user for netdata:

```bash
rabbitmqctl add_user netdata ChangeThisSuperSecretPassword
rabbitmqctl set_permissions netdata "^$" "^$" ".*"
```

See [set_permissions](https://www.rabbitmq.com/rabbitmqctl.8.html#set_permissions) for details.

Once the user is set up, add `collect_queues_metrics: yes` to your `rabbitmq.conf`:

```yaml
local:
  name                   : 'local'
  host                   : '127.0.0.1'
  port                   :  15672
  user                   : 'netdata'
  pass                   : 'ChangeThisSuperSecretPassword'
  collect_queues_metrics : 'yes'
```