Mercurial > prosody-modules
view mod_prometheus/README.markdown @ 4651:8231774f5bfd
mod_cloud_notify_encrypted: Ensure body substring remains valid UTF-8
The `body:sub()` call risks splitting the string in the middle of a
multi-byte UTF-8 sequence. This should have been caught by util.stanza
validation, but that would have caused some havoc, at the very least causing
the notification to not be sent.
There have been no reports of this happening. Likely because this module
isn't widely deployed among users with languages that use many longer UTF-8
sequences.
The util.encodings.utf8.valid() function is O(n) where only the last
sequence really needs to be checked, but it's in C and expected to be fast.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 22 Aug 2021 13:22:59 +0200 |
parents | f4ab80f72d63 |
children | bb66e87a3604 |
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/ 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 0.11 Works 0.10 Works 0.9 Does not work ------- -------------