mod_log_events_by_cpu_usage/mod_log_events_by_cpu_usage.lua
author Kim Alvefur <zash@zash.se>
Sun, 03 Mar 2024 11:23:40 +0100
changeset 5857 97c9b76867ca
parent 3620 c0bc97c0ba61
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:
3619
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
module:set_global();
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
3620
c0bc97c0ba61 mod_log_events_by_cpu_usage: Log events where more than a certain amount of CPU time was spent
Kim Alvefur <zash@zash.se>
parents: 3619
diff changeset
     3
local treshold = module:get_option_number("log_cpu_threshold", 0.01);
3619
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
function event_wrapper(handlers, event_name, event_data)
3620
c0bc97c0ba61 mod_log_events_by_cpu_usage: Log events where more than a certain amount of CPU time was spent
Kim Alvefur <zash@zash.se>
parents: 3619
diff changeset
     6
	local cpu_before = os.clock();
3619
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
	local ret = handlers(event_name, event_data);
3620
c0bc97c0ba61 mod_log_events_by_cpu_usage: Log events where more than a certain amount of CPU time was spent
Kim Alvefur <zash@zash.se>
parents: 3619
diff changeset
     8
	local cpu_after = os.clock();
c0bc97c0ba61 mod_log_events_by_cpu_usage: Log events where more than a certain amount of CPU time was spent
Kim Alvefur <zash@zash.se>
parents: 3619
diff changeset
     9
	if (cpu_after - cpu_before) > treshold then
c0bc97c0ba61 mod_log_events_by_cpu_usage: Log events where more than a certain amount of CPU time was spent
Kim Alvefur <zash@zash.se>
parents: 3619
diff changeset
    10
		module:log("warn", "%g seconds of CPU usage while processing event '%s'", (cpu_after - cpu_before), event_name);
3619
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
	end
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
	return ret;
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
end
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
local http_events = require "net.http.server"._events;
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
module:wrap_object_event(http_events, false, event_wrapper);
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
module:wrap_event(false, event_wrapper);
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
function module.add_host(module)
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
	module:wrap_event(false, event_wrapper);
5fe34e5f9829 mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
end