Changeset

6188:3e0bce07f66c

mod_measure_client_features: Switch to the more modern statistics API
author Link Mauve <linkmauve@linkmauve.fr>
date Tue, 04 Feb 2025 23:02:17 +0100
parents 6187:5aea64434756
children 6189:72b7e0ca71ab
files mod_measure_client_features/mod_measure_client_features.lua
diffstat 1 files changed, 8 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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)