Mercurial > prosody-modules
view mod_statistics_mem/mod_statistics_mem.lua @ 4409:44f6537f6427
mod_invites_adhoc: Fail contact invite if user is not on current host
Only the username was being used, and the host of the requester ignored.
Luckily this only affects admins of the host. If they want to create an
account they can use the other command. If they want to create a contact
they should request from their account on this host.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 28 Jan 2021 07:04:11 +0000 |
parents | 403d5cd924eb |
children |
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; }; } });