pub struct ObserveStats {Show 19 fields
pub index_nodes_read: u64,
pub seed_nodes_fetched: u64,
pub seed_nodes_materialized: u64,
pub seed_nodes_executed: u64,
pub seed_nodes_reused: u64,
pub cache_bytes_written: u64,
pub nodes_id_shared: u64,
pub shared_resource_ids: u64,
pub descriptor_bytes_read: u64,
pub descriptor_read_mode: DescriptorReadMode,
pub manifest_bytes_read: u64,
pub index_bytes_read: u64,
pub seed_bytes_read: u64,
pub bytes_read: u64,
pub bytes_returned: u64,
pub deepened: bool,
pub member_decodes: u64,
pub xml_parses: u64,
pub wall_micros: u64,
}Expand description
Statistics of one observation — the evidence surface (ADR-0027).
Peak RSS and CPU time are deliberately not claimed here: std exposes no
portable CPU-time API, and peak RSS is a Linux-only /proc read that the court
already measures externally (the court reads Maximum resident set size from
/usr/bin/time -v). Claiming either in-process would add a platform-specific, easily-misread field for no gain.
Fields§
§index_nodes_read: u64Index entries consulted during the observation (the reference descent is counted by the entries it returns).
seed_nodes_fetched: u64Seed nodes fetched from the seed store.
seed_nodes_materialized: u64Seed nodes evaluated/materialized (including dependencies). With reuse
enabled this counts cache misses only, so it never exceeds
seed_nodes_executed.
seed_nodes_executed: u64Seed nodes actually executed during this observation (cache misses).
seed_nodes_reused: u64Seed nodes served whole from the persisted derived cache (their subtrees were not traversed).
cache_bytes_written: u64Output bytes written to the derived cache during this observation.
Content-shared representation fact (Phase 12.8): the number of seed nodes
this field’s ingest found already present by content id, so it wrote
nothing for them. This is deliberately distinct from
Self::seed_nodes_reused, which is a work fact about this
observation. Read from the manifest provenance; 0 for an older field.
Resource blobs this field shares with an earlier document (Phase 12.8);
0 when the field shares none. Read from the manifest provenance.
descriptor_bytes_read: u64Descriptor bytes physically fetched to open this observation’s field.
For the full path this is the whole .voldoc blob; for the seek-based
partial path it is only the record closure the query needed (see
Self::descriptor_read_mode). It is not hidden behind bytes_read.
descriptor_read_mode: DescriptorReadModeWhich descriptor read path produced Self::descriptor_bytes_read:
full for the whole-blob parse, partial for a seek-based closure read.
manifest_bytes_read: u64Field-manifest bytes physically fetched.
index_bytes_read: u64Hierarchical-index-node bytes physically fetched.
seed_bytes_read: u64Seed-node bytes physically fetched (get_node + get_node_range).
bytes_read: u64Total physical bytes fetched by this observation:
descriptor_bytes_read + manifest_bytes_read + index_bytes_read + seed_bytes_read. Unrelated to bytes_returned (the output size): a
narrow observation can return fewer bytes than it reads.
bytes_returned: u64Bytes returned to the caller.
deepened: boolWhether a Stage-C promotion (deepening) happened during this observation.
member_decodes: u64Decoded package members this observation required (Phase 12.7), counted
where the adapter resolves them. A member served whole from the persisted
cache still counts as required; Self::seed_nodes_reused tells you it was
not re-executed, so a warm observation can report the requirement without
claiming fresh work.
xml_parses: u64Materialization requests for XML-derived model nodes
(PackageOpcModel/DocxModel/DocxStory/EpubModel/EpubContent) at the
observation boundary (Phase 12.7). Same honest scope as Self::member_decodes.
wall_micros: u64Wall-clock duration in microseconds.