Mercurial > prosody-modules
annotate mod_log_events_by_memory/mod_log_events_by_memory.lua @ 5139:449e4ca4de32
mod_unified_push: Remove dependency on trunk util.jwt (0.12 compat)
This should allow the module to work on 0.12, while preserving expiry checking
(which was not built in to 0.12's util.jwt).
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 10 Jan 2023 16:34:21 +0000 |
parents | 5fe34e5f9829 |
children |
rev | line source |
---|---|
3615
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 |
5fe34e5f9829
mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local treshold = module:get_option_number("log_memory_threshold", 20*1024); |
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) |
5fe34e5f9829
mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 local memory_before = collectgarbage("count")*1024; |
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); |
5fe34e5f9829
mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 local memory_after = collectgarbage("count")*1024; |
5fe34e5f9829
mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 if (memory_after - memory_before) > treshold then |
5fe34e5f9829
mod_log_events_by_memory: Log events where Lua memory usage increased
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 module:log("warn", "Memory increased by %g bytes while processing event '%s'", (memory_after - memory_before), event_name); |
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 |