# HG changeset patch # User Kim Alvefur # Date 1429801259 -7200 # Node ID 2a4c632a24cb33cd595fcabe232ef0c9a58aab1d # Parent accbf0db0246123401a62cb6cebadc7a37f448a6 mod_measure_cpu: Collect CPU usage statistic diff -r accbf0db0246 -r 2a4c632a24cb mod_measure_cpu/mod_measure_cpu.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_measure_cpu/mod_measure_cpu.lua Thu Apr 23 17:00:59 2015 +0200 @@ -0,0 +1,33 @@ +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 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); +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"); +