Mercurial > prosody-modules
annotate mod_measure_cpu/mod_measure_cpu.lua @ 2608:362ca94192ee
mod_smacks: Add resumed session to event "smacks-hibernation-end"
Older versions of this event only have the "intermediate" session
in event.session (the one used to resume the existing session),
but not the resumed one.
This adds event.resumed which contains the resumed one alongside
to event.session.
| author | tmolitor <thilo@eightysoft.de> |
|---|---|
| date | Sat, 11 Mar 2017 01:37:28 +0100 |
| parents | 2a4c632a24cb |
| children | 8357cabc31f6 |
| rev | line source |
|---|---|
|
1677
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 module:set_global(); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local measure = require"core.statsmanager".measure; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local mt = require"util.multitable"; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 local get_time = require "socket".gettime; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 local get_clock = os.clock; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 local measure_cpu_now = measure("amount", "cpu.percent"); -- Current percentage |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 local last_cpu_wall, last_cpu_clock; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 module:hook("stats-update", function () |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 local new_wall, new_clock = get_time(), get_clock(); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 local pc = 0; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 if last_cpu_wall then |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 pc = 100/((new_wall-last_cpu_wall)/(new_clock-last_cpu_clock)); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 end |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 last_cpu_wall, last_cpu_clock = new_wall, new_clock; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 measure_cpu_now(pc); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 end); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 -- Some metadata for mod_munin |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 local munin_meta = mt.new(); munin_meta.data = module:shared"munin/meta"; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 local key = "global_cpu_amount"; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
26 munin_meta:set(key, "", "graph_args", "--base 1000 -r --lower-limit 0 --upper-limit 100"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 munin_meta:set(key, "", "graph_title", "Prosody CPU Usage"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 munin_meta:set(key, "", "graph_vlabel", "%"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
29 munin_meta:set(key, "", "graph_category", "cpu"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
30 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 munin_meta:set(key, "percent", "label", "CPU Usage"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 munin_meta:set(key, "percent", "min", "0"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 |
