github.com/netdata/go.d.plugin@v0.58.1/modules/rabbitmq/integrations/rabbitmq.md (about)

     1  <!--startmeta
     2  custom_edit_url: "https://github.com/netdata/go.d.plugin/edit/master/modules/rabbitmq/README.md"
     3  meta_yaml: "https://github.com/netdata/go.d.plugin/edit/master/modules/rabbitmq/metadata.yaml"
     4  sidebar_label: "RabbitMQ"
     5  learn_status: "Published"
     6  learn_rel_path: "Data Collection/Message Brokers"
     7  most_popular: False
     8  message: "DO NOT EDIT THIS FILE DIRECTLY, IT IS GENERATED BY THE COLLECTOR'S metadata.yaml FILE"
     9  endmeta-->
    10  
    11  # RabbitMQ
    12  
    13  
    14  <img src="https://netdata.cloud/img/rabbitmq.svg" width="150"/>
    15  
    16  
    17  Plugin: go.d.plugin
    18  Module: rabbitmq
    19  
    20  <img src="https://img.shields.io/badge/maintained%20by-Netdata-%2300ab44" />
    21  
    22  ## Overview
    23  
    24  This collector monitors RabbitMQ instances.
    25  
    26  It collects data using an HTTP-based API provided by the [management plugin](https://www.rabbitmq.com/management.html).
    27  The following endpoints are used:
    28  
    29  - `/api/overview`
    30  - `/api/node/{node_name}`
    31  - `/api/vhosts`
    32  - `/api/queues` (disabled by default)
    33  
    34  
    35  
    36  
    37  This collector is supported on all platforms.
    38  
    39  This collector supports collecting metrics from multiple instances of this integration, including remote instances.
    40  
    41  
    42  ### Default Behavior
    43  
    44  #### Auto-Detection
    45  
    46  This integration doesn't support auto-detection.
    47  
    48  #### Limits
    49  
    50  The default configuration for this integration does not impose any limits on data collection.
    51  
    52  #### Performance Impact
    53  
    54  The default configuration for this integration is not expected to impose a significant performance impact on the system.
    55  
    56  
    57  ## Metrics
    58  
    59  Metrics grouped by *scope*.
    60  
    61  The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.
    62  
    63  
    64  
    65  ### Per RabbitMQ instance
    66  
    67  These metrics refer to the entire monitored application.
    68  
    69  This scope has no labels.
    70  
    71  Metrics:
    72  
    73  | Metric | Dimensions | Unit |
    74  |:------|:----------|:----|
    75  | rabbitmq.messages_count | ready, unacknowledged | messages |
    76  | rabbitmq.messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |
    77  | rabbitmq.objects_count | channels, consumers, connections, queues, exchanges | messages |
    78  | rabbitmq.connection_churn_rate | created, closed | operations/s |
    79  | rabbitmq.channel_churn_rate | created, closed | operations/s |
    80  | rabbitmq.queue_churn_rate | created, deleted, declared | operations/s |
    81  | rabbitmq.file_descriptors_count | available, used | fd |
    82  | rabbitmq.sockets_count | available, used | sockets |
    83  | rabbitmq.erlang_processes_count | available, used | processes |
    84  | rabbitmq.erlang_run_queue_processes_count | length | processes |
    85  | rabbitmq.memory_usage | used | bytes |
    86  | rabbitmq.disk_space_free_size | free | bytes |
    87  
    88  ### Per vhost
    89  
    90  These metrics refer to the virtual host.
    91  
    92  Labels:
    93  
    94  | Label      | Description     |
    95  |:-----------|:----------------|
    96  | vhost | virtual host name |
    97  
    98  Metrics:
    99  
   100  | Metric | Dimensions | Unit |
   101  |:------|:----------|:----|
   102  | rabbitmq.vhost_messages_count | ready, unacknowledged | messages |
   103  | rabbitmq.vhost_messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |
   104  
   105  ### Per queue
   106  
   107  These metrics refer to the virtual host queue.
   108  
   109  Labels:
   110  
   111  | Label      | Description     |
   112  |:-----------|:----------------|
   113  | vhost | virtual host name |
   114  | queue | queue name |
   115  
   116  Metrics:
   117  
   118  | Metric | Dimensions | Unit |
   119  |:------|:----------|:----|
   120  | rabbitmq.queue_messages_count | ready, unacknowledged, paged_out, persistent | messages |
   121  | rabbitmq.queue_messages_rate | ack, publish, publish_in, publish_out, confirm, deliver, deliver_no_ack, get, get_no_ack, deliver_get, redeliver, return_unroutable | messages/s |
   122  
   123  
   124  
   125  ## Alerts
   126  
   127  There are no alerts configured by default for this integration.
   128  
   129  
   130  ## Setup
   131  
   132  ### Prerequisites
   133  
   134  #### Enable management plugin.
   135  
   136  The management plugin is included in the RabbitMQ distribution, but disabled.
   137  To enable see [Management Plugin](https://www.rabbitmq.com/management.html#getting-started) documentation.
   138  
   139  
   140  
   141  ### Configuration
   142  
   143  #### File
   144  
   145  The configuration file name for this integration is `go.d/rabbitmq.conf`.
   146  
   147  
   148  You can edit the configuration file using the `edit-config` script from the
   149  Netdata [config directory](https://github.com/netdata/netdata/blob/master/docs/configure/nodes.md#the-netdata-config-directory).
   150  
   151  ```bash
   152  cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
   153  sudo ./edit-config go.d/rabbitmq.conf
   154  ```
   155  #### Options
   156  
   157  The following options can be defined globally: update_every, autodetection_retry.
   158  
   159  
   160  <details><summary>Config options</summary>
   161  
   162  | Name | Description | Default | Required |
   163  |:----|:-----------|:-------|:--------:|
   164  | update_every | Data collection frequency. | 1 | no |
   165  | autodetection_retry | Recheck interval in seconds. Zero means no recheck will be scheduled. | 0 | no |
   166  | url | Server URL. | http://localhost:15672 | yes |
   167  | collect_queues_metrics | Collect stats per vhost per queues. Enabling this can introduce serious overhead on both Netdata and RabbitMQ if many queues are configured and used. | no | no |
   168  | timeout | HTTP request timeout. | 1 | no |
   169  | username | Username for basic HTTP authentication. |  | no |
   170  | password | Password for basic HTTP authentication. |  | no |
   171  | proxy_url | Proxy URL. |  | no |
   172  | proxy_username | Username for proxy basic HTTP authentication. |  | no |
   173  | proxy_password | Password for proxy basic HTTP authentication. |  | no |
   174  | method | HTTP request method. | GET | no |
   175  | body | HTTP request body. |  | no |
   176  | headers | HTTP request headers. |  | no |
   177  | not_follow_redirects | Redirect handling policy. Controls whether the client follows redirects. | no | no |
   178  | tls_skip_verify | Server certificate chain and hostname validation policy. Controls whether the client performs this check. | no | no |
   179  | tls_ca | Certification authority that the client uses when verifying the server's certificates. |  | no |
   180  | tls_cert | Client TLS certificate. |  | no |
   181  | tls_key | Client TLS key. |  | no |
   182  
   183  </details>
   184  
   185  #### Examples
   186  
   187  ##### Basic
   188  
   189  An example configuration.
   190  
   191  <details><summary>Config</summary>
   192  
   193  ```yaml
   194  jobs:
   195    - name: local
   196      url: http://127.0.0.1:15672
   197  
   198  ```
   199  </details>
   200  
   201  ##### Basic HTTP auth
   202  
   203  Local server with basic HTTP authentication.
   204  
   205  <details><summary>Config</summary>
   206  
   207  ```yaml
   208  jobs:
   209    - name: local
   210      url: http://127.0.0.1:15672
   211      username: admin
   212      password: password
   213  
   214  ```
   215  </details>
   216  
   217  ##### Multi-instance
   218  
   219  > **Note**: When you define multiple jobs, their names must be unique.
   220  
   221  Local and remote instances.
   222  
   223  
   224  <details><summary>Config</summary>
   225  
   226  ```yaml
   227  jobs:
   228    - name: local
   229      url: http://127.0.0.1:15672
   230  
   231    - name: remote
   232      url: http://192.0.2.0:15672
   233  
   234  ```
   235  </details>
   236  
   237  
   238  
   239  ## Troubleshooting
   240  
   241  ### Debug Mode
   242  
   243  To troubleshoot issues with the `rabbitmq` collector, run the `go.d.plugin` with the debug option enabled. The output
   244  should give you clues as to why the collector isn't working.
   245  
   246  - Navigate to the `plugins.d` directory, usually at `/usr/libexec/netdata/plugins.d/`. If that's not the case on
   247    your system, open `netdata.conf` and look for the `plugins` setting under `[directories]`.
   248  
   249    ```bash
   250    cd /usr/libexec/netdata/plugins.d/
   251    ```
   252  
   253  - Switch to the `netdata` user.
   254  
   255    ```bash
   256    sudo -u netdata -s
   257    ```
   258  
   259  - Run the `go.d.plugin` to debug the collector:
   260  
   261    ```bash
   262    ./go.d.plugin -d -m rabbitmq
   263    ```
   264  
   265