Skip to main content

fmf_contract/
counters.rs

1//! Degradation-counter names — the `snake_case` keys of
2//! `MetricsSnapshot.counters` in the stats JSON.
3//!
4//! This JSON shape is contract
5//! surface (the C# `CountersData` is generated from this list, and fmf-core's
6//! `golden_json` test pins its `CountersSnapshot` serde keys against it), so the
7//! list lives here even though the counters themselves are engine-internal.
8//! Append new counters at the end; never rename (F12 history and the golden
9//! `stats_snapshot.json` key on them).
10
11/// The ordered `snake_case` keys of the degradation counters.
12///
13/// Exposed as `MetricsSnapshot.counters` in the stats JSON. Contract surface:
14/// append new names at the end, never rename. Both the C# `CountersData` and
15/// fmf-core's `CountersSnapshot` serde keys are pinned against this list.
16pub const COUNTER_NAMES: &[&str] = &[
17    "stat_fetch_failures",
18    "usn_batches_truncated",
19    "snapshot_load_failures",
20    "snapshot_save_failures",
21    "deferred_names_unresolved",
22    "corrupt_mft_records",
23    "journal_rescans",
24    "scan_pipeline_fallbacks",
25    "offset_table_rebuild_fallbacks",
26    "lazy_perm_rebuild_fallbacks",
27    "compaction_aborts",
28    "pipe_malformed_frames",
29    "pipe_events_dropped",
30    "pipe_connections_rejected",
31    "deferred_name_cache_overflow",
32    "deferred_name_read_failures",
33    "pipe_results_evicted",
34    "trace_serialize_failures",
35    "walk_read_errors",
36    "walk_depth_truncated",
37];