view mod_measure_modules/mod_measure_modules.lua @ 6398:9c9889ad4302

mod_unsubscriber: Add MUC support This catches XEP-0045 Join stanzas and replies with an error telling the prospective participant that the supposed MUC is gone. The user or their client can then take action to remove any bookmark or at least disable autojoin.
author Kim Alvefur <zash@zash.se>
date Sat, 07 Feb 2026 12:25:52 +0100
parents ecfd7aece33b
children
line wrap: on
line source

module:set_global();

local mm = require "core.modulemanager";
local sm = require "core.statsmanager";

local measure_status = sm.metric("gauge", "prosody_module_status", "", "Prosody module status", { "host"; "module" });

local status_priorities = { error = 3; warn = 2; info = 1; core = 0 };

function module.add_host(module)
	local measure = measure_status:with_partial_label(module.host);

	if module.global then
		measure = measure_status:with_partial_label(":global");
	end

	-- Already loaded modules
	local modules = mm.get_modules(module.host);
	for name, mod in pairs(modules) do
		measure:with_labels(name):set(status_priorities[mod.module.status_type] or 0);
	end

	-- TODO hook module load and unload

	-- Future changes
	module:hook("module-status/updated", function(event)
		local mod = mm.get_module(event.name);
		measure:with_labels(event.name):set(status_priorities[mod and mod.module.status_type] or 0);
	end);

end

module:add_host(); -- Initialize global context