annotate mod_measure_message_length/mod_measure_message_length.lua @ 4542:fb4a50bf60f1

mod_prometheus: Invoke stats collection if in 'manual' mode Since 10d13e0554f9 a special value for statistics_interval "manual" exists, where a module is expected to invoke processing in connection to collection of stats. This makes internal collection and exporting to Prometheus happens at the same time with no chance of timers getting out of sync.
author Kim Alvefur <zash@zash.se>
date Tue, 13 Apr 2021 23:53:53 +0200
parents 6e70d354b7d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2372
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local bytes = module:measure("bytes", "sizes");
3430
6e70d354b7d8 mod_measure_message_length: Use measure type that actually exists
Kim Alvefur <zash@zash.se>
parents: 2372
diff changeset
2 local lines = module:measure("lines", "distribution");
6e70d354b7d8 mod_measure_message_length: Use measure type that actually exists
Kim Alvefur <zash@zash.se>
parents: 2372
diff changeset
3 local words = module:measure("words", "distribution");
2372
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local function measure_length(event)
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local body = event.stanza:get_child_text("body");
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 if body then
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 bytes(#body);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 lines(select(2, body:gsub("[^\n]+","")));
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 words(select(2, body:gsub("%S+","")));
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 end
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 end
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 module:hook("message/full", measure_length);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 module:hook("message/bare", measure_length);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 module:hook("message/host", measure_length);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 module:hook("pre-message/full", measure_length);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 module:hook("pre-message/bare", measure_length);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 module:hook("pre-message/host", measure_length);
b1b120e654ff mod_measure_message_length: Collect statistics on number of bytes, words and lines in messages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21