Mercurial > prosody-modules
annotate misc/munin/prosody_.lua @ 4362:116c88c28532
mod_http_admin_api: restructure group-related info in API
- Return the members of the group right in the get_group_by_id
call. This is an O(1) of extra work.
- Remove the groups attribute from get_user_by_name as that is
O(n) of work and rarely immediately needed.
The replacement for the group membership information in the user
is for now to use the group API and iterate; future work may fix
that.
author | Jonas Schäfer <jonas@wielicki.name> |
---|---|
date | Wed, 20 Jan 2021 15:30:29 +0100 |
parents | 235d986ac20f |
children |
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 |