pub trait RuntimeObservability: Send + Sync {
// Required methods
fn metrics(&self) -> Arc<dyn MetricsCollector> ⓘ;
fn health(&self) -> Arc<dyn HealthCheckRegistry> ⓘ;
// Provided methods
fn component_metrics(&self) -> ComponentMetrics { ... }
fn in_flight_counter(&self) -> Option<Arc<AtomicU64>> { ... }
}Expand description
Narrow observability surface available to Endpoint consumers and producers.
Implemented blanket for every T: ComponentContext, so
CamelContext (the spec’s “DefaultRuntime”) and any test ctx
automatically satisfy this trait. Endpoints receive
Arc<dyn RuntimeObservability> at create_consumer / create_producer
time (per Phase A closure spec).
Send + Sync is mandatory — Endpoints spawn across tokio tasks.
Required Methods§
Sourcefn metrics(&self) -> Arc<dyn MetricsCollector> ⓘ
fn metrics(&self) -> Arc<dyn MetricsCollector> ⓘ
Active metrics collector. Used for increment_errors(route_id, label)
per ADR-0012 categories (b′) and (e).
Sourcefn health(&self) -> Arc<dyn HealthCheckRegistry> ⓘ
fn health(&self) -> Arc<dyn HealthCheckRegistry> ⓘ
Active health-check registry. Used for
force_unhealthy_for_route(route_id, name, reason) per ADR-0012
category (g).
Provided Methods§
Sourcefn component_metrics(&self) -> ComponentMetrics
fn component_metrics(&self) -> ComponentMetrics
Facade for the uniform component-operations family
(camel_component_operations_total{component,operation,outcome},
dashboard-observability Task 4.1). The lever snapshot is baked in
at facade construction: the component series flow only with the
[observability.metrics].components lever on, while failures
always reach the non-disableable error family.
Default: lever off — impls that do not override
component_metrics_enabled() (manual test runtimes AND any
context wired without a levers snapshot) keep the component
series suppressed and only forward errors. In production the
controller-path ControllerComponentContext overrides it with
the levers snapshot taken at pipeline assembly.
Sourcefn in_flight_counter(&self) -> Option<Arc<AtomicU64>>
fn in_flight_counter(&self) -> Option<Arc<AtomicU64>>
Context-global counter of accepted-not-completed exchanges
(drainclaim), forwarded from ComponentContext::in_flight_counter.
Default None keeps runtimes that install no counter uncounted.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".