# HG changeset patch # User Link Mauve # Date 1738706537 -3600 # Node ID 3e0bce07f66c809169aab78877a31b4f12467e06 # Parent 5aea644347569442caa2f7749ced76cbb762a094 mod_measure_client_features: Switch to the more modern statistics API diff -r 5aea64434756 -r 3e0bce07f66c mod_measure_client_features/mod_measure_client_features.lua --- a/mod_measure_client_features/mod_measure_client_features.lua Tue Feb 04 22:38:03 2025 +0100 +++ b/mod_measure_client_features/mod_measure_client_features.lua Tue Feb 04 23:02:17 2025 +0100 @@ -1,13 +1,11 @@ module:set_global(); -local measure = require"core.statsmanager".measure; +local statsmanager = require "prosody.core.statsmanager"; + +local measure_features = module:metric("gauge", "features", "", "Features advertized by clients", {"feature"}); 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 = {}; @@ -26,11 +24,11 @@ total = total + 1; end end + statsmanager.cork(); + measure_features:clear(); for bucket, count in pairs(buckets) do - if counters[bucket] == nil then - counters[bucket] = measure("amount", "client_features."..bucket); - end - counters[bucket](count); + measure_features:with_labels(bucket):add(count); end - counters.total(total); + measure_features:with_labels("total"):add(total); + statsmanager.uncork(); end)