actionqueue_daemon/metrics/
mod.rs1pub mod attempts;
7pub mod recovery;
8pub mod registry;
9pub mod runs;
10pub mod wal;
11
12#[cfg_attr(not(test), allow(dead_code))]
13pub(crate) fn lag_now(state: &crate::http::RouterStateInner) -> u64 {
18 state.clock.now()
19}
20
21#[cfg(test)]
22mod tests {
23 use std::sync::Arc;
24
25 use actionqueue_storage::recovery::bootstrap::RecoveryObservations;
26 use actionqueue_storage::recovery::reducer::ReplayReducer;
27 use actionqueue_storage::wal::WalAppendTelemetry;
28
29 use super::lag_now;
30 use crate::bootstrap::{ReadyStatus, RouterConfig};
31 use crate::metrics::registry::MetricsRegistry;
32 use crate::time::clock::{MockClock, SharedDaemonClock};
33
34 #[test]
35 fn lag_now_uses_router_state_injected_clock() {
36 let clock: SharedDaemonClock = Arc::new(MockClock::new(424_242));
37 let metrics =
38 Arc::new(MetricsRegistry::new(None).expect("metrics registry should initialize"));
39 let state = crate::http::RouterStateInner::new(
40 RouterConfig { control_enabled: false, metrics_enabled: false },
41 Arc::new(std::sync::RwLock::new(ReplayReducer::new())),
42 crate::http::RouterObservability {
43 metrics,
44 wal_append_telemetry: WalAppendTelemetry::new(),
45 clock,
46 recovery_observations: RecoveryObservations::zero(),
47 },
48 ReadyStatus::ready(),
49 );
50
51 assert_eq!(lag_now(&state), 424_242);
52 }
53}