Mercurial > prosody-modules
annotate mod_log_rate/mod_log_rate.lua @ 4542:fb4a50bf60f1
mod_prometheus: Invoke stats collection if in 'manual' mode
Since 10d13e0554f9 a special value for statistics_interval "manual"
exists, where a module is expected to invoke processing in connection to
collection of stats. This makes internal collection and exporting to
Prometheus happens at the same time with no chance of timers getting out
of sync.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 13 Apr 2021 23:53:53 +0200 |
parents | f388747c53c7 |
children |
rev | line source |
---|---|
1762
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 module:set_global(); |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 local function sink_maker(config) |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local levels = { |
2243
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
5 debug = module:measure("log.debug", "rate"); |
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
6 info = module:measure("log.info", "rate"); |
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
7 warn = module:measure("log.warn", "rate"); |
f388747c53c7
mod_log_rate: Fix to actually use module methods
Kim Alvefur <zash@zash.se>
parents:
2202
diff
changeset
|
8 error = module:measure("log.error", "rate"); |
1762
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 }; |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 return function (_, level) |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 return levels[level](); |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 end |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 |
e6c7fe1be6cd
mod_log_rate: Log sink that reports the rate of log messages to statsmanager
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 require"core.loggingmanager".register_sink_type("measure", sink_maker); |