annotate mod_statistics_mem/mod_statistics_mem.lua @ 5787:e79f9dec35c0

mod_c2s_conn_throttle: Reduce log level from error->info Our general policy is that "error" should never be triggerable by remote entities, and that it is always about something that requires admin intervention. This satisfies neither condition. The "warn" level can be used for unexpected events/behaviour triggered by remote entities, and this could qualify. However I don't think failed auth attempts are unexpected enough. I selected "info" because it is what is also used for other notable session lifecycle events.
author Matthew Wild <mwild1@gmail.com>
date Thu, 07 Dec 2023 15:46:50 +0000
parents 403d5cd924eb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1379
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Probably Linux-specific memory statistics
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 module:set_global();
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local human;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 do
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local tostring = tostring;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 local s_format = string.format;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 local m_floor = math.floor;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 local m_max = math.max;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local prefixes = "kMGTPEZY";
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local multiplier = 1024;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 function human(num)
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 num = tonumber(num) or 0;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 local m = 0;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 while num >= multiplier and m < #prefixes do
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 num = num / multiplier;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 m = m + 1;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 end
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 return s_format("%0."..m_max(0,3-#tostring(m_floor(num))).."f%sB",
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 num, m > 0 and (prefixes:sub(m,m) .. "i") or "");
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 end
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 end
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 local pagesize = 4096; -- according to getpagesize()
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 module:provides("statistics", {
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 statistics = {
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 memory_total = { -- virtual memory
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 get = function ()
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 local statm, err = io.open"/proc/self/statm";
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 if statm then
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 local total = statm:read"*n";
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 statm:close();
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 return total * pagesize;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 else
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 module:log("debug", err);
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 end
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 end;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 tostring = human;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 };
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 memory_rss = { -- actual in-memory data size
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 get = function ()
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 local statm, err = io.open"/proc/self/statm";
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47 if statm then
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 statm:read"*n"; -- Total size, ignore
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
49 local rss = statm:read"*n";
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
50 statm:close();
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
51 return rss * pagesize;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
52 else
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
53 module:log("debug", err);
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
54 end
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
55 end;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
56 tostring = human;
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
57 };
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
58 }
403d5cd924eb mod_statistics_mem: Module that collects memory usage stats from /proc
Kim Alvefur <zash@zash.se>
parents:
diff changeset
59 });