Mercurial > prosody-modules
view mod_measure_cpu/mod_measure_cpu.lua @ 5305:9b9f35aaeb91
mod_client_management: Add support for revocation of clients (when possible)
We decided to keep the unified listing of "clients", which includes both SASL2
clients and OAuth grants, etc. To a user, or someone wanting to manage what
can access their account, they are largely equivalent.
To accomplish this technically, we add a prefix to the id to state what type
it really is.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 05 Apr 2023 19:42:16 +0100 |
parents | 2af0301af734 |
children |
line wrap: on
line source
module:set_global(); local measure = require"core.statsmanager".measure; local mt = require"util.multitable"; local get_time = require "socket".gettime; local get_clock = os.clock; local measure_cpu_now = measure("amount", "cpu.percent"); -- Current percentage local measure_cpu_total = measure("counter", "cpu.clock", { units = "seconds" }); local last_cpu_wall, last_cpu_clock; module:hook("stats-update", function () local new_wall, new_clock = get_time(), get_clock(); local pc = 0; if last_cpu_wall then pc = 100/((new_wall-last_cpu_wall)/(new_clock-last_cpu_clock)); end last_cpu_wall, last_cpu_clock = new_wall, new_clock; measure_cpu_now(pc); measure_cpu_total(new_clock); end); -- Some metadata for mod_munin local munin_meta = mt.new(); munin_meta.data = module:shared"munin/meta"; local key = "global_cpu_amount"; munin_meta:set(key, "", "graph_args", "--base 1000 -r --lower-limit 0 --upper-limit 100"); munin_meta:set(key, "", "graph_title", "Prosody CPU Usage"); munin_meta:set(key, "", "graph_vlabel", "%"); munin_meta:set(key, "", "graph_category", "cpu"); munin_meta:set(key, "percent", "label", "CPU Usage"); munin_meta:set(key, "percent", "min", "0");