Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Statistics: Rewrite statistics backends to use OpenMetrics | Jonas Schäfer | 2021-04-18 | 1 | -3/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The metric subsystem of Prosody has had some shortcomings from the perspective of the current state-of-the-art in metric observability. The OpenMetrics standard [0] is a formalization of the data model (and serialization format) of the well-known and widely-used Prometheus [1] software stack. The previous stats subsystem of Prosody did not map well to that format (see e.g. [2] and [3]); the key reason is that it was trying to do too much math on its own ([2]) while lacking first-class support for "families" of metrics ([3]) and structured metric metadata (despite the `extra` argument to metrics, there was no standard way of representing common things like "tags" or "labels"). Even though OpenMetrics has grown from the Prometheus world of monitoring, it maps well to other popular monitoring stacks such as: - InfluxDB (labels can be mapped to tags and fields as necessary) - Carbon/Graphite (labels can be attached to the metric name with dot-separation) - StatsD (see graphite when assuming that graphite is used as backend, which is the default) The util.statsd module has been ported to use the OpenMetrics model as a proof of concept. An implementation which exposes the util.statistics backend data as Prometheus metrics is ready for publishing in prosody-modules (most likely as mod_openmetrics_prometheus to avoid breaking existing 0.11 deployments). At the same time, the previous measure()-based API had one major advantage: It is really simple and easy to use without requiring lots of knowledge about OpenMetrics or similar concepts. For that reason as well as compatibility with existing code, it is preserved and may even be extended in the future. However, code relying on the `stats-updated` event as well as `get_stats` from `statsmanager` will break because the data model has changed completely; in case of `stats-updated`, the code will simply not run (as the event was renamed in order to avoid conflicts); the `get_stats` function has been removed completely (so it will cause a traceback when it is attempted to be used). Note that the measure_*_event methods have been removed from the module API. I was unable to find any uses or documentation and thus deemed they should not be ported. Re-implementation is possible when necessary. [0]: https://openmetrics.io/ [1]: https://prometheus.io/ [2]: #959 [3]: #960 | ||||
* | util.datamapper: Library for extracting data from stanzas | Kim Alvefur | 2021-03-07 | 1 | -0/+3 |
| | | | | Based on the XML support in the OpenAPI specification. | ||||
* | util.jsonschema: Library for JSON Schema validation | Kim Alvefur | 2021-03-06 | 1 | -0/+3 |
| | |||||
* | luacheck: Remove exception for net.cqueues since it is now clean | Kim Alvefur | 2020-07-08 | 1 | -1/+0 |
| | |||||
* | util.sasl.digest-md5: Remove, obsolete since 2011 | Kim Alvefur | 2020-04-14 | 1 | -2/+0 |
| | | | | | | | RFC 6331 lists several problems with this outdated authentication mechanism. The code here was also completely ignored by lint checks and has probably not been used for a long time, as it is incompatible with SCRAM-hashed password storage. | ||||
* | luacheck: Don't not warn about not using secondary return values | Kim Alvefur | 2019-12-20 | 1 | -1/+0 |
| | | | | Brace for ONE BILLION WARNINGS!!! | ||||
* | .luacheckrc: Remove passing spec/ files from ignore list | Matthew Wild | 2019-12-09 | 1 | -3/+0 |
| | |||||
* | .luacheckrc: Remove passing file from ignore list | Matthew Wild | 2019-12-09 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Correct indentation of 'exclude_files' list | Kim Alvefur | 2019-04-01 | 1 | -30/+30 |
| | |||||
* | .luacheckrc: Update to reflect new module API methods | Matthew Wild | 2019-03-19 | 1 | -1/+4 |
| | |||||
* | luacheckrc: Teach luacheck about the new module:send_iq() API | Kim Alvefur | 2018-12-30 | 1 | -0/+1 |
| | |||||
* | net.adns: Silence individual luacheck warnings instead of ignoring entire file | Kim Alvefur | 2018-12-24 | 1 | -1/+0 |
| | |||||
* | luacheckrc: No longer ignore access to undefined fields on table lib | Kim Alvefur | 2018-12-08 | 1 | -1/+1 |
| | |||||
* | lint: No longer ignore access to the deprecated global 'unpack' | Kim Alvefur | 2018-12-08 | 1 | -1/+1 |
| | | | | _G.unpack is deprecated in Lua 5.2 | ||||
* | luacheckrc: Set Lua standard to 5.3 with 5.2 compat enabled | Kim Alvefur | 2018-12-08 | 1 | -0/+1 |
| | |||||
* | mod_net_multiplex: Remove exception from luacheck | Kim Alvefur | 2018-10-10 | 1 | -1/+0 |
| | |||||
* | mod_http_files: Remove exception from luacheck | Kim Alvefur | 2018-10-10 | 1 | -1/+0 |
| | |||||
* | mod_privacy: Remove exception from luacheck | Kim Alvefur | 2018-10-10 | 1 | -1/+0 |
| | | | | | Plugin has been removed and replaced by a tombstone, no point in excluding it from linting | ||||
* | mod_storage_sql: Remove exception from luacheck | Kim Alvefur | 2018-10-10 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Ignore unused secondaries in non-strict mode | Kim Alvefur | 2018-10-06 | 1 | -2/+2 |
| | | | | Previous commit was backwards | ||||
* | .luacheckrc: Do not ignore unused secondaries in strict mode | Kim Alvefur | 2018-10-06 | 1 | -0/+1 |
| | |||||
* | mod_websocket: Silence the one warning instead of ignoring the entire file | Kim Alvefur | 2018-09-30 | 1 | -1/+0 |
| | |||||
* | mod_s2s: Silence all warnings instead of ignoring the entire module | Kim Alvefur | 2018-09-30 | 1 | -2/+0 |
| | |||||
* | mod_admin_telnet: Remove from luacheck ignore list | Kim Alvefur | 2018-09-30 | 1 | -1/+0 |
| | |||||
* | mod_admin_adhoc: Remove from global luacheck ignore list | Kim Alvefur | 2018-09-30 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Allow randomize() global in spec/ | Matthew Wild | 2018-09-29 | 1 | -1/+2 |
| | | | | | | This is a busted function that is not currently recognized by luacheck. See https://github.com/mpeterv/luacheck/pull/183 | ||||
* | util.json tests: Add [luacheck] annotation to mark intentionally-empty if branch | Matthew Wild | 2018-09-17 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Remove util_cache_spec.lua from the ignore list | Matthew Wild | 2018-09-17 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Remove aspirational goals from strict check, keep it simple for now | Matthew Wild | 2018-09-13 | 1 | -3/+0 |
| | |||||
* | luacheckrc: Remove mod_groups from ignored files | Kim Alvefur | 2018-07-07 | 1 | -1/+0 |
| | |||||
* | luacheckrc: Remove exception for modules that produce no warnings | Kim Alvefur | 2018-07-06 | 1 | -3/+0 |
| | |||||
* | mod_announce: Fix luacheck warnings | Kim Alvefur | 2018-07-06 | 1 | -1/+0 |
| | |||||
* | luacheckrc: Consider mod_http clean | Kim Alvefur | 2018-07-06 | 1 | -1/+0 |
| | |||||
* | luacheckrc: Remove exception for mod_pep, it's clean | Kim Alvefur | 2018-07-06 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Remove mod_pubsub/pubsub.lib.lua from files excluded from checks | Kim Alvefur | 2018-05-23 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Only ignore warnings for excluded files, not syntax errors | Kim Alvefur | 2018-05-23 | 1 | -1/+4 |
| | |||||
* | .luacheckrc: Ignore attempts to get table.unpack | Kim Alvefur | 2018-05-19 | 1 | -1/+1 |
| | | | | | | This is to allow this common pattern: local unpack = table.unpack or unpack; | ||||
* | .luacheckrc: Remove mod_limits from excluded files as it should now be clean | Kim Alvefur | 2018-05-18 | 1 | -1/+0 |
| | |||||
* | .luacheckrc: Add some additional stricter requirements when ↵ | Matthew Wild | 2018-05-18 | 1 | -0/+3 |
| | | | | PROSODY_STRICT_LINT=1 | ||||
* | .luacheckrc: Ignore currently-unclean files unless env var PROSODY_STRICT_LINT=1 | Matthew Wild | 2018-05-18 | 1 | -0/+64 |
| | |||||
* | .luacheckrc: Fix whitespace | Matthew Wild | 2018-05-18 | 1 | -1/+1 |
| | |||||
* | luacheckrc: No longer ignore use of the global 'server' (net.server) | Kim Alvefur | 2018-04-05 | 1 | -1/+0 |
| | |||||
* | luacheckrc: Forget about _G.hosts, things should use _G.prosody.hosts | Kim Alvefur | 2018-03-29 | 1 | -2/+0 |
| | |||||
* | luacheckrc: Remove allowance for the global log() since it may not exist as ↵ | Kim Alvefur | 2018-04-05 | 1 | -1/+0 |
| | | | | early as before | ||||
* | luacheckrc: Allow top level variables in prosodyctl (eg CFG_*) [luacheck] | Kim Alvefur | 2018-03-23 | 1 | -0/+4 |
| | |||||
* | luacheckrc: Let luacheck know about the log and server globals | Kim Alvefur | 2018-03-23 | 1 | -0/+2 |
| | |||||
* | luacheckrc: Only allow top level declarations in the main prosody executable | Kim Alvefur | 2018-03-23 | 1 | -1/+5 |
| | |||||
* | luacheckrc: Ignore all unknown globals in config file (ie all settings) | Kim Alvefur | 2018-03-10 | 1 | -0/+1 |
| | |||||
* | luacheckrc: Restore module semantics, but only for plugins (ignores some ↵ | Kim Alvefur | 2018-03-09 | 1 | -0/+1 |
| | | | | globals) | ||||
* | .luacheckrc: Add awareness of the module:http_url API added by mod_http | Kim Alvefur | 2018-03-07 | 1 | -0/+3 |
| |