add event_loop_accumulates_lag_secs

This commit is contained in:
Ivan FB 2026-04-27 09:03:57 +02:00
parent 324048430b
commit e1cb60793c
No known key found for this signature in database
GPG Key ID: DF0C67A04C543270

View File

@ -10,6 +10,9 @@ declarePublicGauge event_loop_load,
"chronos event loop load EWMA by window (1.0 = sustained lag at MaxAcceptedLag)",
labels = ["window"]
declarePublicCounter event_loop_accumulated_lag_secs,
"chronos event loop total accumulated lag in seconds since node start"
type OnLagChange* = proc(lagTooHigh: bool) {.gcsafe, raises: [].}
proc eventLoopMonitorLoop*(onLagChange: OnLagChange = nil) {.async.} =
@ -55,6 +58,8 @@ proc eventLoopMonitorLoop*(onLagChange: OnLagChange = nil) {.async.} =
let lagSecs = lag.nanoseconds.float64 / 1_000_000_000.0
let load = lagSecs / maxAcceptedLagSecs
event_loop_accumulated_lag_secs.inc(lagSecs)
ewma1m = alpha1m * load + (1.0 - alpha1m) * ewma1m
ewma5m = alpha5m * load + (1.0 - alpha5m) * ewma5m
ewma15m = alpha15m * load + (1.0 - alpha15m) * ewma15m