Software /
code /
prosody-modules
File
mod_statistics_mem/mod_statistics_mem.lua @ 5416:2393dbae51ed
mod_http_oauth2: Add option for specifying TTL of registered clients
Meant to simplify configuration, since TTL vs ignoring expiration is
expected to be the main thing one would want to configure.
Unsure what the implications of having unlimited lifetime of clients
are, given no way to revoke them currently, short of rotating the
signing secret.
On one hand, it would be annoying to have the client expire.
On the other hand, it is trivial to re-register it.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 04 May 2023 18:41:33 +0200 |
parent | 1379:403d5cd924eb |
line wrap: on
line source
-- Probably Linux-specific memory statistics module:set_global(); local human; do local tostring = tostring; local s_format = string.format; local m_floor = math.floor; local m_max = math.max; local prefixes = "kMGTPEZY"; local multiplier = 1024; function human(num) num = tonumber(num) or 0; local m = 0; while num >= multiplier and m < #prefixes do num = num / multiplier; m = m + 1; end return s_format("%0."..m_max(0,3-#tostring(m_floor(num))).."f%sB", num, m > 0 and (prefixes:sub(m,m) .. "i") or ""); end end local pagesize = 4096; -- according to getpagesize() module:provides("statistics", { statistics = { memory_total = { -- virtual memory get = function () local statm, err = io.open"/proc/self/statm"; if statm then local total = statm:read"*n"; statm:close(); return total * pagesize; else module:log("debug", err); end end; tostring = human; }; memory_rss = { -- actual in-memory data size get = function () local statm, err = io.open"/proc/self/statm"; if statm then statm:read"*n"; -- Total size, ignore local rss = statm:read"*n"; statm:close(); return rss * pagesize; else module:log("debug", err); end end; tostring = human; }; } });