Mercurial > prosody-modules
annotate mod_statistics_mem/mod_statistics_mem.lua @ 5223:8b2a36847912
mod_http_oauth2: Support HTTP Basic auth on token endpoint
This is described in RFC 6749 section 2.3.1 and draft-ietf-oauth-v2-1-07 2.3.1
as the recommended way to transmit the client's credentials.
The older spec even calls it the "client password", but the new spec clarifies
that this is just another term for the client secret.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 07 Mar 2023 15:27:50 +0000 |
parents | 403d5cd924eb |
children |
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 }); |