Mercurial > prosody-modules
view mod_stats39/mod_stats39.lua @ 6167:886c985ece61
mod_lastlog2: Skip initializing internal API (and storage) in prosodyctl
Initializing storage in the global context under prosodyctl causes the
module.command to fail to execute because the storage module has already
been loaded.
Introduced in 7b722955c59b
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 08 Feb 2025 14:12:18 +0100 |
| parents | bac3dae031ee |
| children |
line wrap: on
line source
local statsman = require "core.statsmanager"; local st = require "util.stanza"; local s_format = string.format; assert(statsman.get_stats, "not compatible with trunk based on openmetrics"); module:add_feature("http://jabber.org/protocol/stats"); module:hook("iq/host/http://jabber.org/protocol/stats:query", function (event) local origin, stanza = event.origin, event.stanza; local stats, _, extra = statsman.get_stats(); local reply = st.reply(stanza); reply:tag("query", { xmlns = "http://jabber.org/protocol/stats" }); for stat, value in pairs(stats) do local unit = extra[stat] and extra[stat].units; reply:tag("stat", { name = stat, unit = unit, value = s_format("%.12g", value) }):up(); end origin.send(reply); return true; end)
