annotate mod_measure_pending_s2s/mod_measure_pending_s2s.lua @ 6562:5da6fb562df9 default tip

mod_unified_push: Fix push error handling (fixes #2000) Use the error object that send_iq() passes as an argument to it's reject callback instead of attempting and failing to do the parsing in the callback itself.
author kmq
date Mon, 06 Jul 2026 14:23:57 +0200
parents 4c98f4340bf1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6342
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 module:set_global();
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 local measure_pending_connections = module:metric(
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 "gauge", "connections_pending_outbound", "",
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 "In-progress outbound s2s connections",
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 {"host"}
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 );
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local measure_pending_stanzas = module:metric(
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 "gauge", "stanzas_pending_outbound", "",
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 "Outbound s2s stanzas queued for delivery",
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 {"host"}
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 );
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 local hosts = {};
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 function module.add_host(host_module)
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 hosts[host_module.host] = true;
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 function host_module.unload()
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 hosts[host_module.host] = nil;
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 end
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 end
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 module:hook("stats-update", function ()
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 for host in pairs(hosts) do
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 local n_pending_sessions = 0;
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 local n_pending_stanzas = 0;
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 for _, session in pairs(prosody.hosts[host].s2sout) do
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 if session.sendq then
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 n_pending_sessions = n_pending_sessions + 1;
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 n_pending_stanzas = n_pending_stanzas + session.sendq:count();
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 end
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 end
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 measure_pending_connections:with_labels(host):set(n_pending_sessions);
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 measure_pending_stanzas:with_labels(host):set(n_pending_stanzas);
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 end
4c98f4340bf1 mod_measure_pending_s2s: New module to measure pending s2s/stanzas
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 end);