author | Kim Alvefur <zash@zash.se> |
Tue, 16 Sep 2014 19:53:41 +0200 | |
changeset 1506 | a40f9b8661d8 |
parent 1429 | 3f85aaca8282 |
child 2359 | 513332854531 |
permissions | -rw-r--r-- |
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 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
local print = print; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 |
local pairs = pairs; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
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
|
6 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
local stats = {}; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
stats.c2s = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 |
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
|
11 |
graph_vlabel = "users"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 |
graph_category = "Prosody"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 |
all_client_connections = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
label = "client connections"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
_key = "total_c2s"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 |
stats.s2s = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 |
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
|
21 |
graph_vlabel = "servers"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 |
graph_category = "Prosody"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
outgoing_connections = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 |
label = "outgoing connections"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 |
_key = "total_s2sout"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 |
}; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 |
incoming_connections = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 |
label = "incoming connections"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 |
_key = "total_s2sin"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 |
stats.mem = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 |
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
|
35 |
graph_vlabel = "Bytes"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 |
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
|
37 |
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
|
38 |
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
|
39 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
40 |
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
|
41 |
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
|
42 |
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
|
43 |
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
|
44 |
-- 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
|
45 |
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
|
46 |
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
|
47 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
48 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
49 |
stats.cpu = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
50 |
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
|
51 |
graph_category = "Prosody"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
52 |
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
|
53 |
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
|
54 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
55 |
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
|
56 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
57 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
58 |
stats.auth = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
59 |
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
|
60 |
graph_category = "Prosody"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
61 |
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
|
62 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 |
c2s_auth = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
64 |
label = "Logins"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
65 |
type = "DERIVE"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 |
min = 0; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
67 |
}; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
68 |
c2s_authfail = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
69 |
label = "Failed logins"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
70 |
type = "DERIVE"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
71 |
min = 0; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
72 |
}; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
73 |
} |
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 |
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
|
76 |
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
|
77 |
if err then |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
78 |
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
|
79 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
80 |
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
|
81 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
82 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
83 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
84 |
local function connect() |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
85 |
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
|
86 |
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
|
87 |
conn:settimeout(1); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
88 |
return conn; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
89 |
end |
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 get_config(item) |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
92 |
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
|
93 |
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
|
94 |
print(k .. " " .. v); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
95 |
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
|
96 |
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
|
97 |
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
|
98 |
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
|
99 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
100 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
101 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
102 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
103 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
104 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
105 |
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
|
106 |
local labels = {}; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
107 |
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
|
108 |
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
|
109 |
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
|
110 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
111 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
112 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
113 |
local conn = connect(); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
114 |
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
|
115 |
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
|
116 |
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
|
117 |
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
|
118 |
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
|
119 |
if label then |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
120 |
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
|
121 |
labels[stat] = nil; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
122 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 |
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
|
124 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
125 |
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
|
126 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
127 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
128 |
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
|
129 |
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
|
130 |
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
|
131 |
print(available_stat); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
132 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
133 |
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
|
134 |
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
|
135 |
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
|
136 |
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
|
137 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
138 |
end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
139 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
140 |
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
|
141 |
|
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
142 |
return { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
143 |
stats = stats, |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
144 |
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
|
145 |
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
|
146 |
} |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
147 |