pub struct MetricsSnapshot {Show 26 fields
pub lifecycle: Option<DaemonLifecycleSnapshot>,
pub wal_pages: Option<u64>,
pub wal_log_frames: Option<u64>,
pub wal_checkpointed_frames: Option<u64>,
pub wal_pending_frames: Option<u64>,
pub wal_physical_bytes: Option<u64>,
pub wal_observed_at_unix_ms: Option<u64>,
pub wal_checkpoint_stores: Vec<CheckpointStoreMetrics>,
pub wal_truncate_attempts: u64,
pub wal_truncate_consecutive_failures: u64,
pub wal_checkpoint_skipped_ticks: u64,
pub wal_checkpoint_consecutive_skips: u64,
pub wal_checkpoint_last_skip_wal_pages: Option<u64>,
pub oldest_pinned_tx_micros: Option<u64>,
pub oldest_pinned_tx_label: Option<String>,
pub open_tx_count: usize,
pub write_queue_depth: Option<usize>,
pub write_queue_capacity: Option<usize>,
pub write_last_queue_wait_micros: Option<u64>,
pub write_last_transaction_acquire_micros: Option<u64>,
pub write_last_body_micros: Option<u64>,
pub write_last_commit_micros: Option<u64>,
pub write_last_total_micros: Option<u64>,
pub write_last_observed_at_unix_ms: Option<u64>,
pub connections: Option<ConnectionCapSnapshot>,
pub recall_ledger: Option<RecallLedgerSnapshot>,
}Expand description
Point-in-time snapshot of the daemon’s server-side gauges — the load/perf harness read-surface (measurement substrate, not a product feature).
Every field here is a server-side gauge reachable from handle_conn
without any mutation: khive_storage::tx_registry (ADR-091 Plank 0,
process-global singleton), the main pool’s backend-keyed routine WAL
sample and process TRUNCATE counters (khive_db::checkpoint), and the
ADR-067 Component A write queue depth/latest writer-stage sample. There is
no reset reachable through this type or through DaemonRequestFrame —
gauges out, nothing in.
Fields§
§lifecycle: Option<DaemonLifecycleSnapshot>Launch mode and the current lifecycle of this daemon incarnation.
wal_pages: Option<u64>Last-observed WAL page count from the periodic checkpoint tick.
None when the checkpoint task has never ticked in this process
(for example, an in-memory dispatcher with no pool, or a daemon that
just started and hasn’t hit its first tick yet).
wal_log_frames: Option<u64>Logical frames present in the WAL at the main backend’s most recent periodic PASSIVE checkpoint. Kept separate from physical allocation.
wal_checkpointed_frames: Option<u64>Frames backfilled by that same periodic PASSIVE pass.
wal_pending_frames: Option<u64>Logical frames still pending after that pass (log - checkpointed).
wal_physical_bytes: Option<u64>Physical -wal sidecar bytes captured at the same routine tick.
wal_observed_at_unix_ms: Option<u64>Wall-clock timestamp of the routine WAL sample, for staleness checks.
wal_checkpoint_stores: Vec<CheckpointStoreMetrics>Cumulative actual routine PASSIVE calls for each store this daemon checkpoints. Microseconds preserve sub-millisecond costs; max is since process start, not an interval maximum. Counters saturate rather than wrap.
wal_truncate_attempts: u64Total WAL TRUNCATE escalation attempts (ADR-091 Plank 2) made in this process’s lifetime, regardless of whether they succeeded in reclaiming pages.
wal_truncate_consecutive_failures: u64Current consecutive-failure count for TRUNCATE attempts that failed to
bring the WAL back below warn_pages; resets to 0 the next time an
attempt clears it.
wal_checkpoint_skipped_ticks: u64Total checkpoint ticks skipped because the dedicated checkpoint
connection was unavailable (ADR-091 checkpoint-pressure telemetry),
across this process’s lifetime. #[serde(default)] so an older client
decoding a newer daemon’s snapshot (or vice versa) does not fail.
wal_checkpoint_consecutive_skips: u64Current consecutive-skip run length; 0 once the next tick is observed.
wal_checkpoint_last_skip_wal_pages: Option<u64>WAL page count last known at the time of the most recent skip, if any skip has occurred yet in this process.
oldest_pinned_tx_micros: Option<u64>Age, in microseconds, of the oldest currently-open transaction
registry entry (ADR-091 Plank 0). None when no transaction is
currently open.
oldest_pinned_tx_label: Option<String>Diagnostic label of the oldest currently-open transaction registry entry, if any and if it was registered with one.
open_tx_count: usizeNumber of currently open transaction registry entries.
write_queue_depth: Option<usize>Current write-queue backlog depth (ADR-067 Component A): requests
enqueued but not yet accepted by the WriterTask drain loop. None
unless the write queue is enabled (KHIVE_WRITE_QUEUE=1) and a
file-backed pool is available.
write_queue_capacity: Option<usize>The write queue’s configured bounded capacity
(PoolConfig::write_queue_capacity), gated the same as
write_queue_depth.
write_last_queue_wait_micros: Option<u64>Latest completed writer-task span: bounded-channel admission/backlog.
write_last_transaction_acquire_micros: Option<u64>Latest completed writer-task span: BEGIN IMMEDIATE acquisition.
write_last_body_micros: Option<u64>Latest completed writer-task span: application transaction body.
write_last_commit_micros: Option<u64>Latest completed writer-task span: SQLite COMMIT/fsync phase.
write_last_total_micros: Option<u64>Whole latest writer-task request span, retained for compatibility and comparison with the decomposed stages.
write_last_observed_at_unix_ms: Option<u64>Wall-clock timestamp of the writer-stage sample.
connections: Option<ConnectionCapSnapshot>Connection cap of the daemon socket this snapshot was served from.
None from a daemon that predates the cap and when no listener owns
the connection.
recall_ledger: Option<RecallLedgerSnapshot>Bounds and counts of the best-effort recall serve-ledger tasks.
None from a daemon that predates the bound.
Trait Implementations§
Source§impl Clone for MetricsSnapshot
impl Clone for MetricsSnapshot
Source§impl Debug for MetricsSnapshot
impl Debug for MetricsSnapshot
Source§impl Default for MetricsSnapshot
impl Default for MetricsSnapshot
Source§impl<'de> Deserialize<'de> for MetricsSnapshot
impl<'de> Deserialize<'de> for MetricsSnapshot
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MetricsSnapshot
impl PartialEq for MetricsSnapshot
Source§impl Serialize for MetricsSnapshot
impl Serialize for MetricsSnapshot
impl StructuralPartialEq for MetricsSnapshot
Auto Trait Implementations§
impl Freeze for MetricsSnapshot
impl RefUnwindSafe for MetricsSnapshot
impl Send for MetricsSnapshot
impl Sync for MetricsSnapshot
impl Unpin for MetricsSnapshot
impl UnsafeUnpin for MetricsSnapshot
impl UnwindSafe for MetricsSnapshot
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more