collectd-rabbitmq is a collectd plugin that collects statistics from RabbitMQ. The plugin uses the RabbitMQ Management Plugin to poll for statistics on a RabbitMQ server, then reports them to collectd.
When collectd is configured to publish metrics to SignalFx, metrics from this
plugin will be named according to the format:
<metric type>.<category>.<statistic>
For example:
gauge.connection.recv_oct_details.rate
counter.connection.send_oct
gauge.queue.message_stats.deliver_get_details.rate
- Collectd 4.9 or later (for the Python plugin)
- Python 2.6 or later
- RabbitMQ 3.0 or later
- RabbitMQ Management Plugin
SignalFx maintains a sample configuration file for this plugin here: 10-rabbitmq.conf
The following mandatory configuration options describe how the plugin will connect to the RabbitMQ Management API:
- Username - the username for authentication
- Password - the password for authentication
- Host - hostname or IP address of the RabbitMQ server running the RabbitMQ Management Plugin
- Port - the port of the RabbitMQ Management API
The following boolean configuration options may be added to enable collection of specific statistics:
- CollectChannels - enables collection of channel statistics
- CollectConnections - enables collection of connection statistics
- CollectExchanges - enables collection of exchange statistics
- CollectNodes - enables collection of node statistics
- CollectQueues - enables collection of queue statistics
An additional configuration option is available:
-
HTTPTimeout - Integer value in seconds before timing out when connecting to the RabbitMQ Management API. Defaults to 60 seconds.
-
FieldLength - Set the number of characters used to encode dimension data. This option should only be set if you are using a non-SignalFx fork of collectd that specifies fewer than 1024 characters for DATA_MAX_NAME_LEN in plugin.h.
-
VerbosityLevel - Representation of the quantity of metrics generated by RabbitMQ that are actually reported to SignalFx. If not specified, the default value is "info". The verbosity levels are as follows:
"info": Only the most commonly-used metrics are reported "debug": Additonal metrics useful for debugging are reported "trace": All available metrics are reported
Collectd has a length limit on the plugin_instance field, which this plugin uses to post dimensions to SignalFx. The dimensions include the node name, vhost name, and queue name.
The combination of these names as generated by RabbitMQ may exceed the length limit. As a result, the dimensions posted to SignalFx may be truncated.
This has no effect on the metrics and values to SignalFx, only some of the RabbitMQ-specific dimensions associated with those metrics.
The length limit depends on which fork of collectd you are using. The SignalFx fork of collectd has a 1023-character limit, while the standard fork has a 127-character limit (63 characters prior to version 5.6.0). If you are using the standard collectd and your dimensions are being truncated, consider switching to the SignalFx fork. See https://signalfx-product-docs.readthedocs-hosted.com/en/latest/integrations/collectd-info.html for more information.
If you are not using the SignalFx fork, you should set the FieldLength setting in the plugin configuration file to match your version of collectd. For example:
FieldLength 63