Skip to main content

RuntimeObservability

Trait RuntimeObservability 

Source
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§

Source

fn metrics(&self) -> Arc<dyn MetricsCollector>

Active metrics collector. Used for increment_errors(route_id, label) per ADR-0012 categories (b′) and (e).

Source

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§

Source

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.

Source

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".

Implementors§