Mercurial > prosody-modules
view mod_measure_muc/mod_measure_muc.lua @ 5366:db4c66a1d24b
mod_http_oauth2: Fill in some client metadata defaults
Explicit > Implicit
Maybe we should actually use these for something as well? :)
It's is somewhat an open question of how strictly we should enforce
things in the client metadata given that it is somewhat extensible.
Especially some of these enum fields which have corresponding IANA
registries.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 25 Apr 2023 18:09:08 +0200 |
parents | 39931d727c22 |
children |
line wrap: on
line source
-- Group Chat statistics -- -- Copyright (C) 2020 kaliko <kaliko@azylum.org> -- -- This module is MIT/X11 licensed. -- https://prosody.im/doc/developers/modules -- https://prosody.im/doc/developers/moduleapi -- https://prosody.im/doc/statistics module:log("info", "loading mod_%s", module.name); if module:get_host_type() ~= "component" then module:log("error", "mod_%s should be loaded only on a MUC component, not normal hosts", module.name); return; end local mod_muc = module:depends"muc"; local all_rooms = rawget(mod_muc, "all_rooms") -- Add relevant boolean MUC metrics here local counters = { hidden = module:measure("hidden", "amount", 0), persistent = module:measure("persistent", "amount", 0), password = module:measure('passwd', "amount", 0), archiving = module:measure('archiving', 'amount', 0), }; local total_counter = module:measure("total", "amount", 0); module:hook_global("stats-update", function () local total = 0; local buckets = {}; -- Init buckets for bucket, _ in pairs(counters) do buckets[bucket] = 0; end for room in all_rooms() do --[[ module:log('debug', 'room data for : "'..room.jid..'"'); for conf, val in pairs(room._data) do module:log('debug', conf..": "..tostring(val)); end ]]-- total = total + 1; --module:log('debug','buckets room data :'); for bucket, _ in pairs(buckets) do --module:log('debug', bucket..": "..tostring(room._data[bucket])); if room._data[bucket] then buckets[bucket] = buckets[bucket] + 1; end end end for bucket, count in pairs(buckets) do counters[bucket](count) end total_counter(total); end)