view mod_measure_modules/mod_measure_modules.lua @ 6085:c0cb43817b7c

mod_compliance_latest: using module:log_status diff --git a/mod_compliance_latest/mod_compliance_latest.lua b/mod_compliance_latest/mod_compliance_latest.lua --- a/mod_compliance_latest/mod_compliance_latest.lua +++ b/mod_compliance_latest/mod_compliance_latest.lua @@ -1,6 +1,6 @@ local success, err = pcall(function() module:depends("compliance_2023") end) if not success then - module:log("error", "Error, can't load module: mod_compliance_2023. Is this module downloaded in a folder readable by prosody?") - return 1, "Error: Couldn't load dependency mod_compliance_2023." +module:log_status( "error", "Error, can't load module: mod_compliance_2023. Is this module downloaded into a folder readable by prosody?" ) +return false end
author Menel <menel@snikket.de>
date Mon, 23 Dec 2024 14:09:56 +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