<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://hg.omfa.de/prosody-hg/</link>
    <language>en-us</language>

    <title>prosody-hg: core/statsmanager.lua history</title>
    <description>core/statsmanager.lua revision history</description>
    <item>
    <title>core: Prefix module imports with prosody namespace</title>
    <link>http://hg.omfa.de/prosody-hg/log/ead41e25ebc0/core/statsmanager.lua</link>
    <description><![CDATA[core: Prefix module imports with prosody namespace]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 17 Mar 2023 16:23:07 +0100</pubDate>
</item>
<item>
    <title>statsmanager: remove &quot;legacy&quot; wording</title>
    <link>http://hg.omfa.de/prosody-hg/log/76d32b2ca5eb/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: remove &quot;legacy&quot; wording<br/>
<br/>
This was a leftover from when we (or rather I) thought that the<br/>
old (now called &quot;high-level&quot;) API would be removed. We deemed it<br/>
useful though, so let's remove that &quot;legacy&quot; language and make<br/>
the description more friendly.]]></description>
    <author>&#74;&#111;&#110;&#97;&#115;&#32;&#83;&#99;&#104;&#228;&#102;&#101;&#114;&#32;&#60;&#106;&#111;&#110;&#97;&#115;&#64;&#119;&#105;&#101;&#108;&#105;&#99;&#107;&#105;&#46;&#110;&#97;&#109;&#101;&#62;</author>
    <pubDate>Thu, 20 May 2021 14:03:01 +0200</pubDate>
</item>
<item>
    <title>Statistics: Rewrite statistics backends to use OpenMetrics</title>
    <link>http://hg.omfa.de/prosody-hg/log/5f15ab7c6ae5/core/statsmanager.lua</link>
    <description><![CDATA[Statistics: Rewrite statistics backends to use OpenMetrics<br/>
<br/>
The metric subsystem of Prosody has had some shortcomings from<br/>
the perspective of the current state-of-the-art in metric<br/>
observability.<br/>
<br/>
The OpenMetrics standard [0] is a formalization of the data<br/>
model (and serialization format) of the well-known and<br/>
widely-used Prometheus [1] software stack.<br/>
<br/>
The previous stats subsystem of Prosody did not map well to that<br/>
format (see e.g. [2] and [3]); the key reason is that it was<br/>
trying to do too much math on its own ([2]) while lacking<br/>
first-class support for &quot;families&quot; of metrics ([3]) and<br/>
structured metric metadata (despite the `extra` argument to<br/>
metrics, there was no standard way of representing common things<br/>
like &quot;tags&quot; or &quot;labels&quot;).<br/>
<br/>
Even though OpenMetrics has grown from the Prometheus world of<br/>
monitoring, it maps well to other popular monitoring stacks<br/>
such as:<br/>
<br/>
- InfluxDB (labels can be mapped to tags and fields as necessary)<br/>
- Carbon/Graphite (labels can be attached to the metric name with<br/>
  dot-separation)<br/>
- StatsD (see graphite when assuming that graphite is used as<br/>
  backend, which is the default)<br/>
<br/>
The util.statsd module has been ported to use the OpenMetrics<br/>
model as a proof of concept. An implementation which exposes<br/>
the util.statistics backend data as Prometheus metrics is<br/>
ready for publishing in prosody-modules (most likely as<br/>
mod_openmetrics_prometheus to avoid breaking existing 0.11<br/>
deployments).<br/>
<br/>
At the same time, the previous measure()-based API had one major<br/>
advantage: It is really simple and easy to use without requiring<br/>
lots of knowledge about OpenMetrics or similar concepts. For that<br/>
reason as well as compatibility with existing code, it is preserved<br/>
and may even be extended in the future.<br/>
<br/>
However, code relying on the `stats-updated` event as well as<br/>
`get_stats` from `statsmanager` will break because the data<br/>
model has changed completely; in case of `stats-updated`, the<br/>
code will simply not run (as the event was renamed in order<br/>
to avoid conflicts); the `get_stats` function has been removed<br/>
completely (so it will cause a traceback when it is attempted<br/>
to be used).<br/>
<br/>
Note that the measure_*_event methods have been removed from<br/>
the module API. I was unable to find any uses or documentation<br/>
and thus deemed they should not be ported. Re-implementation is<br/>
possible when necessary.<br/>
<br/>
   [0]: https://openmetrics.io/<br/>
   [1]: https://prometheus.io/<br/>
   [2]: #959<br/>
   [3]: #960]]></description>
    <author>&#74;&#111;&#110;&#97;&#115;&#32;&#83;&#99;&#104;&#228;&#102;&#101;&#114;&#32;&#60;&#106;&#111;&#110;&#97;&#115;&#64;&#119;&#105;&#101;&#108;&#105;&#99;&#107;&#105;&#46;&#110;&#97;&#109;&#101;&#62;</author>
    <pubDate>Sun, 18 Apr 2021 11:47:41 +0200</pubDate>
</item>
<item>
    <title>core.statsmanager: Allow special &quot;manual&quot; value for statistics_interval</title>
    <link>http://hg.omfa.de/prosody-hg/log/10d13e0554f9/core/statsmanager.lua</link>
    <description><![CDATA[core.statsmanager: Allow special &quot;manual&quot; value for statistics_interval<br/>
<br/>
When set, no periodic statistics collection is done by<br/>
core.statsmanager, instead some module is expected to call collect()<br/>
when it suits. Obviously only one such module should be enabled.<br/>
<br/>
Quoth jonas’<br/>
&gt; correct way is to scrape the internal sources on each call to /metrics<br/>
&gt; in the context of Prometheus<br/>
<br/>
&quot;manual&quot; as opposed to &quot;automatic&quot;, from the point of view of<br/>
statsmanager.]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 06 Apr 2021 23:25:15 +0200</pubDate>
</item>
<item>
    <title>core.statsmanager: Cover util.statistics work in processing measurement</title>
    <link>http://hg.omfa.de/prosody-hg/log/9a3ebdd65f9c/core/statsmanager.lua</link>
    <description><![CDATA[core.statsmanager: Cover util.statistics work in processing measurement<br/>
<br/>
Zash&gt; Btw, this conditional and loop, shouldn't it be covered by the timing measurement?<br/>
Zash&gt; Isn't that where all the util.statistics work is done?<br/>
MattJ&gt; Yeah, it should<br/>
Zash&gt; (&quot;the&quot;, but there's two ... which one‽)<br/>
MattJ&gt; Yeah... not sure :)<br/>
MattJ&gt; Processing I guess]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 06 Apr 2021 23:23:28 +0200</pubDate>
</item>
<item>
    <title>core.statsmanager: Allow passing a config table trough measure</title>
    <link>http://hg.omfa.de/prosody-hg/log/6992c4be1a19/core/statsmanager.lua</link>
    <description><![CDATA[core.statsmanager: Allow passing a config table trough measure]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Fri, 04 Jan 2019 07:00:44 +0100</pubDate>
</item>
<item>
    <title>core.statsmanager: Ignore unused variable [luacheck]</title>
    <link>http://hg.omfa.de/prosody-hg/log/25f80afb1631/core/statsmanager.lua</link>
    <description><![CDATA[core.statsmanager: Ignore unused variable [luacheck]]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 23 Dec 2019 21:27:34 +0100</pubDate>
</item>
<item>
    <title>core.statsmanager: Do a final collection on shutdown</title>
    <link>http://hg.omfa.de/prosody-hg/log/7929e0fe0577/core/statsmanager.lua</link>
    <description><![CDATA[core.statsmanager: Do a final collection on shutdown]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 22 Jan 2019 09:21:23 +0100</pubDate>
</item>
<item>
    <title>core.statsmanager: Use correct variable for config validation [luacheck]</title>
    <link>http://hg.omfa.de/prosody-hg/log/4f145a9f1477/core/statsmanager.lua</link>
    <description><![CDATA[core.statsmanager: Use correct variable for config validation [luacheck]]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Mon, 12 Sep 2016 16:08:34 +0200</pubDate>
</item>
<item>
    <title>statsmanager: Refactor to simplify logic. Notably renames 'statistics_provider' to 'statistics', and external libs now just begin with ':'</title>
    <link>http://hg.omfa.de/prosody-hg/log/4ef37ac69562/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: Refactor to simplify logic. Notably renames 'statistics_provider' to 'statistics', and external libs now just begin with ':']]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Fri, 29 Jul 2016 13:20:02 +0100</pubDate>
</item>
<item>
    <title>statsmanager: If provider doesn't offer a get_stats method, still fire the stats-update event if stats_interval is specified (however stats-updated will not fire)</title>
    <link>http://hg.omfa.de/prosody-hg/log/b6f32bb3b584/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: If provider doesn't offer a get_stats method, still fire the stats-update event if stats_interval is specified (however stats-updated will not fire)]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 27 Jul 2016 15:01:28 +0100</pubDate>
</item>
<item>
    <title>statsmanager, util.statsd: Add built-in statsd provider</title>
    <link>http://hg.omfa.de/prosody-hg/log/ebf2e77ac8a7/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager, util.statsd: Add built-in statsd provider]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 27 Jul 2016 14:06:10 +0100</pubDate>
</item>
<item>
    <title>statsmanager: Add 'stats_provider' option, to allow selecting alternative API providers to util.statistics</title>
    <link>http://hg.omfa.de/prosody-hg/log/1c8b63fe6472/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: Add 'stats_provider' option, to allow selecting alternative API providers to util.statistics]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 27 Jul 2016 14:04:36 +0100</pubDate>
</item>
<item>
    <title>statsmanager: Add get() method</title>
    <link>http://hg.omfa.de/prosody-hg/log/82765a4ec799/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: Add get() method]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Sun, 18 Oct 2015 21:35:21 +0100</pubDate>
</item>
<item>
    <title>statsmanager: Fire event at the start of collection to allow for polling</title>
    <link>http://hg.omfa.de/prosody-hg/log/71b5de1d830b/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: Fire event at the start of collection to allow for polling]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Tue, 10 Mar 2015 16:26:25 +0100</pubDate>
</item>
<item>
    <title>statsmanager: Perform an initial collection right after startup is completed</title>
    <link>http://hg.omfa.de/prosody-hg/log/1e749832ed3b/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager: Perform an initial collection right after startup is completed]]></description>
    <author>&#75;&#105;&#109;&#32;&#65;&#108;&#118;&#101;&#102;&#117;&#114;&#32;&#60;&#122;&#97;&#115;&#104;&#64;&#122;&#97;&#115;&#104;&#46;&#115;&#101;&#62;</author>
    <pubDate>Sun, 22 Feb 2015 18:44:48 +0100</pubDate>
</item>
<item>
    <title>statsmanager, util.statistics: API changes, remove debugging</title>
    <link>http://hg.omfa.de/prosody-hg/log/7b2d16c14659/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager, util.statistics: API changes, remove debugging]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Wed, 21 Jan 2015 01:26:06 +0000</pubDate>
</item>
<item>
    <title>statsmanager, prosody: New core module and API for gathering statistics about the running server</title>
    <link>http://hg.omfa.de/prosody-hg/log/6c22bec3e8d0/core/statsmanager.lua</link>
    <description><![CDATA[statsmanager, prosody: New core module and API for gathering statistics about the running server]]></description>
    <author>&#77;&#97;&#116;&#116;&#104;&#101;&#119;&#32;&#87;&#105;&#108;&#100;&#32;&#60;&#109;&#119;&#105;&#108;&#100;&#49;&#64;&#103;&#109;&#97;&#105;&#108;&#46;&#99;&#111;&#109;&#62;</author>
    <pubDate>Tue, 20 Jan 2015 12:33:20 +0000</pubDate>
</item>

  </channel>
</rss>
