annotate misc/munin/prosody_.lua @ 4047:36b6e3e3f9e2

mod_conversejs: Disable automatic BOSH/WS endpoint discovery Converse.js 7.0 will enable this by default, but when using this module the BOSH and WebSocket endpoints are provided in the generated HTML, so automatic discovery is not needed and unlikely to work without an additional module.
author Kim Alvefur <zash@zash.se>
date Thu, 18 Jun 2020 15:24:34 +0200
parents 235d986ac20f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1429
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 #!/usr/bin/env lua
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
2355
513332854531 misc/munin/prosody_.lua: Add a line or two about usage
Kim Alvefur <zash@zash.se>
parents: 1429
diff changeset
3 -- Script for use with mod_statistics
513332854531 misc/munin/prosody_.lua: Add a line or two about usage
Kim Alvefur <zash@zash.se>
parents: 1429
diff changeset
4 -- Create symlinks to this named eg prosody_c2s in /etc/munin/plugins
513332854531 misc/munin/prosody_.lua: Add a line or two about usage
Kim Alvefur <zash@zash.se>
parents: 1429
diff changeset
5
1429
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local print = print;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local pairs = pairs;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 local socket = require"socket";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local stats = {};
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 stats.c2s = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 graph_title = "Prosody C2S Connections";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 graph_vlabel = "users";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 graph_category = "Prosody";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 all_client_connections = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 label = "client connections";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 _key = "total_c2s";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 stats.s2s = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 graph_title = "Prosody S2S Connections";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 graph_vlabel = "servers";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 graph_category = "Prosody";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 outgoing_connections = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 label = "outgoing connections";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 _key = "total_s2sout";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 incoming_connections = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 label = "incoming connections";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 _key = "total_s2sin";
3611
235d986ac20f misc/munin/prosody_: Add a total_s2s counter to work with mod_statistics_statsman
Kim Alvefur <zash@zash.se>
parents: 2355
diff changeset
33 };
235d986ac20f misc/munin/prosody_: Add a total_s2s counter to work with mod_statistics_statsman
Kim Alvefur <zash@zash.se>
parents: 2355
diff changeset
34 total_connections = {
235d986ac20f misc/munin/prosody_: Add a total_s2s counter to work with mod_statistics_statsman
Kim Alvefur <zash@zash.se>
parents: 2355
diff changeset
35 label = "total connections";
235d986ac20f misc/munin/prosody_: Add a total_s2s counter to work with mod_statistics_statsman
Kim Alvefur <zash@zash.se>
parents: 2355
diff changeset
36 _key = "total_s2s";
235d986ac20f misc/munin/prosody_: Add a total_s2s counter to work with mod_statistics_statsman
Kim Alvefur <zash@zash.se>
parents: 2355
diff changeset
37 };
1429
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 stats.mem = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 graph_title = "Prosody Memory Usage";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 graph_vlabel = "Bytes";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 graph_args = "--base 1024 -l 0";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 graph_category = "Prosody"; --memory_unused
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 graph_order = "memory_total memory_rss memory_allocated memory_used memory_lua memory_returnable";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47 memory_allocated = { label = "Allocated", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 memory_lua = { label = "Lua", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
49 memory_rss = { label = "RSS", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
50 memory_total = { label = "Total", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
51 -- memory_unused = { label = "Unused", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
52 memory_used = { label = "Used", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 memory_returnable = { label = "Returnable", draw = "AREA" };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
55
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 stats.cpu = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
57 graph_title = "Prosody CPU Usage";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
58 graph_category = "Prosody";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
59 graph_args = "-l 0";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
60 graph_vlabel = "CPU time used in milliseconds";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
61
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
62 cpu_total = { label = "CPU"; type = "DERIVE"; min = 0; };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
64
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
65 stats.auth = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
66 graph_title = "Prosody Authentications";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
67 graph_category = "Prosody";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
68 graph_args = "--base 1000";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
69
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
70 c2s_auth = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
71 label = "Logins";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
72 type = "DERIVE";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
73 min = 0;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
74 };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
75 c2s_authfail = {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
76 label = "Failed logins";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
77 type = "DERIVE";
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
78 min = 0;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
79 };
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
80 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
81
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
82 local function onerror(msg, err, exit)
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
83 io.stderr:write(msg, '\n');
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
84 if err then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
85 io.stderr:write(err, '\n');
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
86 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
87 os.exit(exit or 1);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
88 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
89
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
90
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
91 local function connect()
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
92 local conn, err = socket.connect(os.getenv"host" or "localhost", os.getenv"port" or 5782);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
93 if not conn then onerror("Could not connect to prosody", err); end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
94 conn:settimeout(1);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
95 return conn;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
96 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
97
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
98 local function get_config(item)
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
99 for k,v in pairs(item) do
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
100 if type(v) == "string" then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
101 print(k .. " " .. v);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
102 elseif type(v) == "table" then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
103 for sk,v in pairs(v) do
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
104 if not sk:match("^_") then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
105 print(k.."."..sk.." "..v);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
106 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
107 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
108 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
109 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
110 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
111
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
112 local function get_stats(item)
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
113 local labels = {};
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
114 for key, val in pairs(item) do
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
115 if type(val) == "table" and val.label then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 labels[val._key or key] = key;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
117 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
119
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
120 local conn = connect();
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
121 local line, err = conn:receive("*l");
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 local stat, value, label;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 while line and line ~= "" and next(labels) ~= nil do
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
124 stat, value = line:match('^STAT%s+"([^"]*)"%s*(%b())');
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
125 label = stat and labels[stat];
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
126 if label then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
127 print(label..".value "..tonumber(value:sub(2,-2)));
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
128 labels[stat] = nil;
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
129 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
130 line, err = conn:receive("*l");
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
131 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
132 if err then onerror(err); end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
133 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
134
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
135 local function main(stat, mode)
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
136 if mode == "suggest" then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
137 for available_stat in pairs(stats) do
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
138 print(available_stat);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
139 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
140 elseif mode == "config" then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
141 return get_config(stats[stat]);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
142 elseif stats[stat] then
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
143 return get_stats(stats[stat]);
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
144 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
145 end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
146
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
147 if arg then return main(arg[0]:match("prosody_(%w*)"), ...); end
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
148
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
149 return {
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
150 stats = stats,
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
151 get_stats = get_stats,
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
152 get_config = get_config,
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
153 }
3f85aaca8282 misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff changeset
154