diff options
Diffstat (limited to 'deps/rabbitmq_prometheus/README.md')
-rw-r--r-- | deps/rabbitmq_prometheus/README.md | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/deps/rabbitmq_prometheus/README.md b/deps/rabbitmq_prometheus/README.md new file mode 100644 index 0000000000..5aeb625ca3 --- /dev/null +++ b/deps/rabbitmq_prometheus/README.md @@ -0,0 +1,104 @@ +[](https://github.com/rabbitmq/rabbitmq-prometheus/actions?query=workflow%3ATest) +[](https://grafana.com/orgs/rabbitmq) + +# Prometheus Exporter of Core RabbitMQ Metrics + +## Getting Started + +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. + +## Project Maturity + +This plugin is new as of RabbitMQ `3.8.0`. + +## Documentation + +See [Monitoring RabbitMQ with Prometheus and Grafana](https://www.rabbitmq.com/prometheus.html). + + +## Installation + +This plugin is included into RabbitMQ 3.8.x releases. Like all [plugins](https://www.rabbitmq.com/plugins.html), it has to be +[enabled](https://www.rabbitmq.com/plugins.html#ways-to-enable-plugins) before it can be used: + +To enable it with [rabbitmq-plugins](http://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html): + +``` shell +rabbitmq-plugins enable rabbitmq_prometheus +``` + +## Usage + +See the [documentation guide](https://www.rabbitmq.com/prometheus.html). + +Default port used by the plugin is `15692` and the endpoint path is at `/metrics`. +To try it with `curl`: + +```shell +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](metrics.md) exposed via the default port. + + +## Configuration + +This exporter supports the following options via a set of `prometheus.*` configuration keys: + + * `prometheus.return_per_object_metrics` returns [individual (per object) metrics that are not aggregated](https://www.rabbitmq.com/prometheus.html#metric-aggregation) (default is `false`). + * `prometheus.path` defines a scrape endpoint (default is `"/metrics"`). + * `prometheus.tcp.*` controls HTTP listener settings that match [those used by the RabbitMQ HTTP API](https://www.rabbitmq.com/management.html#configuration) + * `prometheus.ssl.*` controls TLS (HTTPS) listener settings that match [those used by the RabbitMQ HTTP API](https://www.rabbitmq.com/management.html#single-listener-https) + +Sample configuration snippet: + +```ini +# 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).' +``` + + +## Contributing + +See [CONTRIBUTING.md](https://github.com/rabbitmq/rabbitmq-prometheus/blob/master/CONTRIBUTING.md). + + +## Makefile + +This project uses [erlang.mk](https://erlang.mk/), running `make help` will return erlang.mk help. + +To see all custom targets that have been documented, run `make h`. + +For Bash shell autocompletion, run `eval "$(make autocomplete)"`, then type `make a<TAB>` to see all Make targets starting with the letter `a`, e.g.: + +```sh +$ make a<TAB +ac all.coverdata app-build apps apps-eunit asciidoc-guide autocomplete +all app app-c_src apps-ct asciidoc asciidoc-manual +``` + + +## Copyright + +(c) 2007-2020 VMware, Inc. or its affiliates. |