# RabbitMQ

### Supported Platforms

| Platform | Metrics | Logs | Traces |
| -------- | ------- | ---- | ------ |
| Linux    | ✓       | ✓    |        |
| Windows  | ✓       | ✓    |        |
| macOS    | ✓       | ✓    |        |

### Prerequisites

Supports RabbitMQ versions 3.8 and 3.9.

The RabbitMQ Management Plugin must be enabled by following the [official instructions](https://www.rabbitmq.com/management.html#getting-started).

Also, a user with at least [monitoring](https://www.rabbitmq.com/management.html#permissions) level permissions must be used for monitoring.

### Configuration Table

| Parameter              | Type                | Default                              | Description                                                                   |
| ---------------------- | ------------------- | ------------------------------------ | ----------------------------------------------------------------------------- |
| telemetry\_types       | `telemetrySelector` | `["Logs", "Metrics"]`                | Choose Telemetry Type.                                                        |
| daemon\_log\_paths     | `strings`           | `- "/var/log/rabbitmq/rabbit@*.log"` | Path to Rabbitmq log file(s).                                                 |
| start\_at              | `enum`              | end                                  | Start reading the file from the 'beginning' or 'end'.                         |
| username\*             | `string`            |                                      | Username used to authenticate.                                                |
| password\*             | `string`            |                                      | Password used to authenticate.                                                |
| endpoint               | `string`            | `http://localhost:15672`             | The endpoint of the Rabbitmq server.                                          |
| collection\_interval   | `int`               | 60                                   | Sets how often (seconds) to scrape for metrics.                               |
| enable\_tls            | `bool`              | false                                | Whether or not to use TLS.                                                    |
| insecure\_skip\_verify | `bool`              | false                                | Enable to skip TLS certificate verification.                                  |
| ca\_file               | `string`            |                                      | Certificate authority used to validate the database server's TLS certificate. |
| cert\_file             | `string`            |                                      | A TLS certificate used for client authentication, if mutual TLS is enabled.   |
| key\_file              | `string`            |                                      | A TLS private key used for client authentication, if mutual TLS is enabled.   |

<mark style="color:red;">\*</mark>*<mark style="color:red;">required field</mark>*
