add event_loop_accumulates_lag_secs (#3833)

This commit is contained in:
Ivan FB 2026-04-30 00:27:38 +02:00 committed by GitHub
parent 300f584efc
commit 587014e34f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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