annotate mod_measure_message_length/mod_measure_message_length.lua @ 4921:bdac7c717c91

mod_rest: Support parameters in callback URL E.g. rest_callback_url = "http://myapi.example:5000/api/{kind}/{type}" which results in e.g. requests to /api/message/chat Allows using path routing in web frameworks for dispatch instead of having to pick apart the payload to further dispatch it.
author Kim Alvefur <zash@zash.se>
date Sat, 09 Apr 2022 00:41:18 +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