Skip to main content

Counters

Struct Counters 

Source
pub struct Counters {
Show 18 fields pub stat_fetch_failures: AtomicU64, pub usn_batches_truncated: AtomicU64, pub snapshot_load_failures: AtomicU64, pub snapshot_save_failures: AtomicU64, pub deferred_names_unresolved: AtomicU64, pub corrupt_mft_records: AtomicU64, pub journal_rescans: AtomicU64, pub scan_pipeline_fallbacks: AtomicU64, pub compaction_aborts: AtomicU64, pub pipe_malformed_frames: AtomicU64, pub pipe_events_dropped: AtomicU64, pub pipe_connections_rejected: AtomicU64, pub deferred_name_cache_overflow: AtomicU64, pub deferred_name_read_failures: AtomicU64, pub pipe_results_evicted: AtomicU64, pub trace_serialize_failures: AtomicU64, pub walk_read_errors: AtomicU64, pub walk_depth_truncated: AtomicU64,
}
Expand description

Degradation counters — “this happened N times” facts that would otherwise vanish into fallback paths. Zero-cost atomics, always on.

Fields§

§stat_fetch_failures: AtomicU64

Times a per-entry size/mtime stat fetch failed.

§usn_batches_truncated: AtomicU64

Times a USN batch was truncated (records dropped before apply).

§snapshot_load_failures: AtomicU64

Times a snapshot failed to load (fell back to a full scan).

§snapshot_save_failures: AtomicU64

Times a snapshot failed to save.

§deferred_names_unresolved: AtomicU64

Times a deferred $ATTRIBUTE_LIST name could not be resolved.

§corrupt_mft_records: AtomicU64

Times a corrupt MFT record was encountered and skipped.

§journal_rescans: AtomicU64

Times the USN journal was rescanned from scratch (gap recovery).

§scan_pipeline_fallbacks: AtomicU64

Times the scan pipeline fell back to a slower path.

§compaction_aborts: AtomicU64

A compacted copy was discarded because the index mutated under it — impossible while the volume thread is the only writer; nonzero means that invariant broke somewhere.

§pipe_malformed_frames: AtomicU64

Pipe server (fmf-service): a frame failed validation and the connection was dropped.

§pipe_events_dropped: AtomicU64

Pipe server: a subscriber’s bounded event queue overflowed and the oldest event was dropped.

§pipe_connections_rejected: AtomicU64

Pipe server: a client was turned away at the instance cap.

§deferred_name_cache_overflow: AtomicU64

Scan: the extension-record name cache hit its capacity; remaining deferred names fall back to per-record disk reads.

§deferred_name_read_failures: AtomicU64

Scan: a deferred-name disk read failed (the entry keeps a placeholder name until the next rescan).

§pipe_results_evicted: AtomicU64

Pipe server: a result handle was LRU-evicted at the per-connection cap; its next page fetch answers STALE(“evicted”).

§trace_serialize_failures: AtomicU64

QueryTrace JSON serialization failed; the response carried an empty trace (the query itself succeeded).

§walk_read_errors: AtomicU64

Scope walk (ADR-0024): paths skipped because they could not be read (permission denied or vanished mid-walk) — silent data loss otherwise.

§walk_depth_truncated: AtomicU64

Scope walk: subtrees not descended because they hit the depth cap.

Implementations§

Source§

impl Counters

Source

pub fn bump(counter: &AtomicU64)

Increment a counter by one (relaxed atomic).

Source

pub(crate) fn bump_offset_table_rebuild_fallbacks()

Source

pub(crate) fn bump_lazy_perm_rebuild_fallbacks()

Source

pub fn add(counter: &AtomicU64, n: u64)

Add n to a counter (relaxed atomic).

Source

pub fn snapshot(&self) -> CountersSnapshot

Read all counters into a plain-integer CountersSnapshot.

Trait Implementations§

Source§

impl Debug for Counters

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Counters

Source§

fn default() -> Counters

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more