Mercurial > prosody-modules
view mod_prometheus/README.markdown @ 5668:ecfd7aece33b
mod_measure_modules: Report module statuses via OpenMetrics
Someone in the chat asked about a health check endpoint, which reminded
me of mod_http_status, which provides access to module statuses with
full details. After that, this idea came about, which seems natural.
As noted in the README, it could be used to monitor that critical
modules are in fact loaded correctly.
As more modules use the status API, the more useful this module and
mod_http_status becomes.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 06 Oct 2023 18:34:39 +0200 |
parents | c90011054335 |
children |
line wrap: on
line source
--- labels: - Statistics summary: Implementation of the Prometheus protocol ... Description =========== This module implements the Prometheus reporting protocol, allowing you to collect statistics directly from Prosody into Prometheus. See the [Prometheus documentation][prometheusconf] on the format for more information. [prometheusconf]: https://prometheus.io/docs/instrumenting/exposition_formats/ ::: {.alert .alert-info} **Note:** For use with Prosody trunk (0.12) we recommend the bundled [mod_http_openmetrics](https://prosody.im/doc/modules/mod_http_openmetrics) instead. This module (mod_prometheus) will continue to be available in the community repository for use with older Prosody versions. ::: Configuration ============= mod\_prometheus itself doesn’t have any configuration option, but it requires Prosody’s [internal statistics provider](https://prosody.im/doc/statistics#built-in_providers) to be enabled. You may also want to change the default collection interval to the one your statistics consumer is using. See below for more information. ```lua statistics = "internal" statistics_interval = 15 -- in seconds ``` ::: {.alert .alert-warning} **NOTE:** Make sure to put the statistics variables in the global section of the configuration, **not** in a `VirtualHost` or `Component` section. You can use `prosodyctl check` if you are unsure and want to check your configuration. ::: See also the documentation of Prosody’s [HTTP server](https://prosody.im/doc/http), since Prometheus is an HTTP protocol that is how you can customise its URL. The default one being http://localhost:5280/metrics Scrape interval vs statistics_interval -------------------------------------- The `statistics_interval` should be set to `"manual"` on trunk if and only if you have a single Prometheus instance scraping Prosody. This will allow the internal statistics gathering to run optimally. If you have multiple instances scraping Prosody, set `statistics_interval` to the scrape interval of Prometheus to avoid errors in rate calculations and similar. Future work will allow the use of `"manual"` with multiple Prometheus instances and varying scrape intervals (stay tuned). Compatibility ============= ------- ------------- trunk Works (but replaced by [mod_http_openmetrics](https://prosody.im/doc/modules/mod_http_openmetrics)) 0.11 Works 0.10 Works 0.9 Does not work ------- -------------