pub struct Counters {Show 13 fields
pub repository_scans: AtomicU64,
pub index_builds: AtomicU64,
pub registry_builds: AtomicU64,
pub schema_generations: AtomicU64,
pub mcp_projection_builds: AtomicU64,
pub openapi_builds: AtomicU64,
pub http_projection_builds: AtomicU64,
pub graph_builds: AtomicU64,
pub executions: AtomicU64,
pub handler_invocations: AtomicU64,
pub cache_hits: AtomicU64,
pub cache_misses: AtomicU64,
pub cache_evictions: AtomicU64,
/* private fields */
}Expand description
One counter per unit of work. Each is incremented at exactly one place in the code, named in its doc comment.
Fields§
§repository_scans: AtomicU64discovery::discover: one enumeration of the repository’s declared sources.
index_builds: AtomicU64Index::build.
registry_builds: AtomicU64CapabilityRegistry::builder().build().
schema_generations: AtomicU64CanonicalSchema::of: one JSON Schema derived from a Rust type.
mcp_projection_builds: AtomicU64Surface’s tool and resource listings computed (once per shared listing).
openapi_builds: AtomicU64openapi::document.
http_projection_builds: AtomicU64Router::new.
graph_builds: AtomicU64graph::derive: one graph derived from the registry and the index.
executions: AtomicU64CapabilityExecutor::execute: every call through every transport.
handler_invocations: AtomicU64Handlers actually run (an execution the cache did not answer), at every depth: a
handler that composes another capability through the executor counts both, which
is how composition is seen to use the one execution path rather than reach into
another module behind it. So handler_invocations equals executions minus
cache_hits, and an execution that ran a handler twice is exactly what breaks it.
cache_hits: AtomicU64Executions answered from the cache.
cache_misses: AtomicU64Executions of a cached capability that ran the handler.
cache_evictions: AtomicU64Entries dropped to keep a capability under its max_entries, or past their TTL.