Mercurial > prosody-modules
comparison mod_log_events_by_cpu_usage/mod_log_events_by_cpu_usage.lua @ 3616:c0bc97c0ba61
mod_log_events_by_cpu_usage: Log events where more than a certain amount of CPU time was spent
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 10 Jun 2019 15:23:52 +0200 |
parents | mod_log_events_by_memory/mod_log_events_by_memory.lua@5fe34e5f9829 |
children |
comparison
equal
deleted
inserted
replaced
3615:5fe34e5f9829 | 3616:c0bc97c0ba61 |
---|---|
1 module:set_global(); | |
2 | |
3 local treshold = module:get_option_number("log_cpu_threshold", 0.01); | |
4 | |
5 function event_wrapper(handlers, event_name, event_data) | |
6 local cpu_before = os.clock(); | |
7 local ret = handlers(event_name, event_data); | |
8 local cpu_after = os.clock(); | |
9 if (cpu_after - cpu_before) > treshold then | |
10 module:log("warn", "%g seconds of CPU usage while processing event '%s'", (cpu_after - cpu_before), event_name); | |
11 end | |
12 return ret; | |
13 end | |
14 | |
15 local http_events = require "net.http.server"._events; | |
16 module:wrap_object_event(http_events, false, event_wrapper); | |
17 | |
18 module:wrap_event(false, event_wrapper); | |
19 function module.add_host(module) | |
20 module:wrap_event(false, event_wrapper); | |
21 end |