pub struct MetricsSnapshot {
pub wal_pages: Option<u64>,
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>,
}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 WAL checkpoint task’s last-observed page
count and TRUNCATE counters (khive_db::checkpoint), and the ADR-067
Component A write queue depth (only when KHIVE_WRITE_QUEUE=1). There is
no reset reachable through this type or through DaemonRequestFrame —
gauges out, nothing in.
Fields§
§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_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 writer mutex was busy
(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.
Trait Implementations§
Source§impl Clone for MetricsSnapshot
impl Clone for MetricsSnapshot
Source§fn clone(&self) -> MetricsSnapshot
fn clone(&self) -> MetricsSnapshot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MetricsSnapshot
impl Debug for MetricsSnapshot
Source§impl Default for MetricsSnapshot
impl Default for MetricsSnapshot
Source§fn default() -> MetricsSnapshot
fn default() -> 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
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