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];