Prometheus Exporter of Core RabbitMQ Metrics
This is a Prometheus exporter of core RabbitMQ metrics, developed by the RabbitMQ core team. It is largely a "clean room" design that reuses some prior work from Prometheus exporters done by the community.
This plugin is new as of RabbitMQ
To enable it with rabbitmq-plugins:
rabbitmq-plugins enable rabbitmq_prometheus
See the documentation guide.
Default port used by the plugin is
15692 and the endpoint path is at
To try it with
curl -v -H "Accept:text/plain" "http://localhost:15692/metrics"
In most environments there would be no configuration necessary.
See the entire list of metrics exposed via the default port.
This exporter supports the following options via a set of
prometheus.* configuration keys:
prometheus.return_per_object_metricsreturns individual (per object) metrics that are not aggregated (default is
prometheus.pathdefines a scrape endpoint (default is
prometheus.tcp.*controls HTTP listener settings that match those used by the RabbitMQ HTTP API
prometheus.ssl.*controls TLS (HTTPS) listener settings that match those used by the RabbitMQ HTTP API
Sample configuration snippet:
# these values are defaults prometheus.return_per_object_metrics = false prometheus.path = /metrics prometheus.tcp.port = 15692
When metrics are returned per object, nodes with 80k queues have been measured to take 58 seconds to return 1.9 million metrics in a 98MB response payload. In order to not put unnecessary pressure on your metrics system, metrics are aggregated by default.
When debugging, it may be useful to return metrics per object (unaggregated). This can be enabled on-the-fly, without restarting or configuring RabbitMQ, using the following command:
rabbitmqctl eval 'application:set_env(rabbitmq_prometheus, return_per_object_metrics, true).'
To go back to aggregated metrics on-the-fly, run the following command:
rabbitmqctl eval 'application:set_env(rabbitmq_prometheus, return_per_object_metrics, false).'
This project uses erlang.mk, running
make help will return erlang.mk help.
To see all custom targets that have been documented, run
For Bash shell autocompletion, run
eval "$(make autocomplete)", then type
make a<TAB> to see all Make targets starting with the letter
$ make a<TAB ac all.coverdata app-build apps apps-eunit asciidoc-guide autocomplete all app app-c_src apps-ct asciidoc asciidoc-manual
(c) 2007-2020 VMware, Inc. or its affiliates.