mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-05-30 02:29:53 +00:00
add event_loop_accumulates_lag_secs (#3833)
This commit is contained in:
parent
300f584efc
commit
587014e34f
@ -10,6 +10,9 @@ declarePublicGauge event_loop_load,
|
|||||||
"chronos event loop load EWMA by window (1.0 = sustained lag at MaxAcceptedLag)",
|
"chronos event loop load EWMA by window (1.0 = sustained lag at MaxAcceptedLag)",
|
||||||
labels = ["window"]
|
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: [].}
|
type OnLagChange* = proc(lagTooHigh: bool) {.gcsafe, raises: [].}
|
||||||
|
|
||||||
proc eventLoopMonitorLoop*(onLagChange: OnLagChange = nil) {.async.} =
|
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 lagSecs = lag.nanoseconds.float64 / 1_000_000_000.0
|
||||||
let load = lagSecs / maxAcceptedLagSecs
|
let load = lagSecs / maxAcceptedLagSecs
|
||||||
|
|
||||||
|
event_loop_accumulated_lag_secs.inc(lagSecs)
|
||||||
|
|
||||||
ewma1m = alpha1m * load + (1.0 - alpha1m) * ewma1m
|
ewma1m = alpha1m * load + (1.0 - alpha1m) * ewma1m
|
||||||
ewma5m = alpha5m * load + (1.0 - alpha5m) * ewma5m
|
ewma5m = alpha5m * load + (1.0 - alpha5m) * ewma5m
|
||||||
ewma15m = alpha15m * load + (1.0 - alpha15m) * ewma15m
|
ewma15m = alpha15m * load + (1.0 - alpha15m) * ewma15m
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user