Software /
code /
prosody-modules
Annotate
misc/munin/prosody_.lua @ 2968:569b98d6fca1
mod_http_logging: Be robust against missing connection object
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 30 Mar 2018 13:37:39 +0200 |
parent | 2355:513332854531 |
child | 3611:235d986ac20f |
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"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 } |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 } |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
36 stats.mem = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
37 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
|
38 graph_vlabel = "Bytes"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
39 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
|
40 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
|
41 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
|
42 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
43 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
|
44 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
|
45 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
|
46 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
|
47 -- 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
|
48 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
|
49 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
|
50 } |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
51 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
52 stats.cpu = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
53 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
|
54 graph_category = "Prosody"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
55 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
|
56 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
|
57 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
58 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
|
59 } |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
60 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
61 stats.auth = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
62 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
|
63 graph_category = "Prosody"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
64 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
|
65 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 c2s_auth = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
67 label = "Logins"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
68 type = "DERIVE"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
69 min = 0; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
70 }; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
71 c2s_authfail = { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
72 label = "Failed logins"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
73 type = "DERIVE"; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
74 min = 0; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
75 }; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
76 } |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
77 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
78 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
|
79 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
|
80 if err then |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
81 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
|
82 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
83 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
|
84 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
85 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
86 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
87 local function connect() |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
88 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
|
89 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
|
90 conn:settimeout(1); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
91 return conn; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
92 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
93 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
94 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
|
95 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
|
96 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
|
97 print(k .. " " .. v); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
98 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
|
99 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
|
100 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
|
101 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
|
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 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
105 end |
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 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
108 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
|
109 local labels = {}; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
110 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
|
111 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
|
112 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
|
113 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
114 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
115 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
116 local conn = connect(); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
117 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 if label then |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
123 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
|
124 labels[stat] = nil; |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
125 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
126 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
|
127 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
128 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
|
129 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
130 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
131 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
|
132 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
|
133 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
|
134 print(available_stat); |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
135 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
136 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
|
137 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
|
138 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
|
139 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
|
140 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
141 end |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
142 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
143 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
|
144 |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
145 return { |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
146 stats = stats, |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
147 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
|
148 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
|
149 } |
3f85aaca8282
misc/munin/prosody_.lua: Munin script for collecting statistics from mod_statistics
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
150 |