Mercurial > prosody-modules
view mod_measure_client_features/mod_measure_client_features.lua @ 4976:75b6e5df65f9
various: Improve error reporting if missing file server module on 0.12
If there is some error loading net.http.files then it would be swallowed
by the pcall and then it would proceed to trying mod_http_files, which
might cause unexpected behavior on 0.12
Ref #1765
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 18 Jul 2022 22:47:54 +0200 |
parents | 5fdbf416bd40 |
children |
line wrap: on
line source
module:set_global(); local measure = require"core.statsmanager".measure; local disco_ns = "http://jabber.org/protocol/disco#info"; local counters = { total = measure("amount", "client_features.total"); }; module:hook("stats-update", function () local total = 0; local buckets = {}; for _, session in pairs(prosody.full_sessions) do local disco_info = session.caps_cache; if disco_info ~= nil then for feature in disco_info:childtags("feature", disco_ns) do local var = feature.attr.var; if var ~= nil then if buckets[var] == nil then buckets[var] = 0; end buckets[var] = buckets[var] + 1; end end total = total + 1; end end for bucket, count in pairs(buckets) do if counters[bucket] == nil then counters[bucket] = measure("amount", "client_features."..bucket); end counters[bucket](count); end counters.total(total); end)