Mercurial > prosody-modules
annotate mod_measure_cpu/mod_measure_cpu.lua @ 6319:04c3273cb81f
mod_auth_cyrus: Add empty 'profile' table to SASL handler objects
This is for compatibility with Prosody's built-in util.sasl objects.
A SASL profile table usually includes methods supported by the backend, which
can be used by SASL mechanism handlers to perform operations (such as testing
the password). It also optionally contains a 'cb' field with channel binding
method handlers.
The Cyrus backend doesn't support channel binding, and doesn't have the same
concept of auth backend methods (it handles all that internally, and Prosody
has no insight or control over it).
Thus, we create an empty profile which informs Prosody that the SASL handler
does not support any of the auth or channel binding methods. Some features
will not work, but they didn't work anyway. This just makes it explicit.
This fixes a traceback in mod_sasl2_fast, which expected SASL handlers to
always contain a 'profile' field.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 04 Sep 2025 10:14:46 +0100 |
| parents | 2af0301af734 |
| children | 032445730eaa |
| 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 |
|
4039
2af0301af734
mod_measure_cpu: Specify units of total CPU time as seconds
Kim Alvefur <zash@zash.se>
parents:
3444
diff
changeset
|
9 local measure_cpu_total = measure("counter", "cpu.clock", { units = "seconds" }); |
|
1677
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 local last_cpu_wall, last_cpu_clock; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 module:hook("stats-update", function () |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 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
|
14 local pc = 0; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 if last_cpu_wall then |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 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
|
17 end |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 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
|
19 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 measure_cpu_now(pc); |
|
3444
e0fb97f47212
mod_measure_cpu: Rename counter metric to avoid name clash (thanks pep.)
Kim Alvefur <zash@zash.se>
parents:
3431
diff
changeset
|
21 measure_cpu_total(new_clock); |
|
1677
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 end); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 -- Some metadata for mod_munin |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 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
|
26 local key = "global_cpu_amount"; |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
27 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
28 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
|
29 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
|
30 munin_meta:set(key, "", "graph_vlabel", "%"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
31 munin_meta:set(key, "", "graph_category", "cpu"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
32 |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
33 munin_meta:set(key, "percent", "label", "CPU Usage"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
34 munin_meta:set(key, "percent", "min", "0"); |
|
2a4c632a24cb
mod_measure_cpu: Collect CPU usage statistic
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
35 |
