mod_log_rate/mod_log_rate.lua
author Kim Alvefur <zash@zash.se>
Sun, 03 Mar 2024 11:23:40 +0100
changeset 5857 97c9b76867ca
parent 2247 f388747c53c7
permissions -rw-r--r--
mod_log_ringbuffer: Detach event handlers on logging reload (thanks Menel) Otherwise the global event handlers accumulate, one added each time logging is reoladed, and each invocation of the signal or event triggers one dump of each created ringbuffer.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1766
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
module:set_global();
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
local function sink_maker(config)
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
	local levels = {
2247
f388747c53c7 mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents: 2206
diff changeset
     5
		debug = module:measure("log.debug", "rate");
f388747c53c7 mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents: 2206
diff changeset
     6
		info = module:measure("log.info", "rate");
f388747c53c7 mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents: 2206
diff changeset
     7
		warn = module:measure("log.warn", "rate");
f388747c53c7 mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents: 2206
diff changeset
     8
		error = module:measure("log.error", "rate");
1766
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
	};
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
	return function (_, level)
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
		return levels[level]();
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
	end
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
end
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
e6c7fe1be6cd mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
require"core.loggingmanager".register_sink_type("measure", sink_maker);