pub struct TracerConfig {
pub enabled: bool,
pub tracing_enabled_explicit: bool,
pub pipeline_enabled: bool,
pub detail_level: DetailLevel,
pub outputs: TracerOutputs,
pub metrics_levers: MetricsLeversConfig,
}Expand description
Configuration for the Tracer EIP (Enterprise Integration Pattern).
This struct defines how message tracing should be performed throughout
Camel routes. Use CamelContext::set_tracer_config to apply configuration
programmatically, or configure via Camel.toml as shown in the module documentation.
Fields§
§enabled: boolSPAN enablement (metrics-configuration Req 1: tracer.enabled gates
spans ONLY). Explicit values win over the “otel/prometheus imply
tracing” rule in effective_tracer_config (camel-config), in both
directions.
tracing_enabled_explicit: boolWhether enabled was explicitly present at the serde boundary.
Not read from input keys: the custom Deserialize impl below sets it
from the presence/absence of the enabled key, so it is skipped by
every serde path. Explicit values win over the “otel/prometheus imply
tracing” rule in effective_tracer_config (camel-config), in both
directions.
pipeline_enabled: boolPIPELINE enablement: whether routes are wrapped with the observability
adapters at all. Unlike enabled, this is not a TOML key — the
effective-config assembly (camel-config) raises it whenever an
exporter (otel/prometheus) or tracing itself is active, because the
pipeline carries the metric families incl. the non-disableable error
family (metrics-collection-wiring MODIFIED requirement). Programmatic
users leave it false and pipeline wrapping follows enabled.
detail_level: DetailLevel§outputs: TracerOutputs§metrics_levers: MetricsLeversConfigMetric-family levers ([observability.metrics]). Not a
[observability.tracer] key: the levers deserialize at their own
table and camel-config attaches them here during effective-config
assembly, so the tracer serde boundary below never reads them.
Trait Implementations§
Source§impl Clone for TracerConfig
impl Clone for TracerConfig
Source§impl Debug for TracerConfig
impl Debug for TracerConfig
Source§impl Default for TracerConfig
impl Default for TracerConfig
Source§impl<'de> Deserialize<'de> for TracerConfig
Deserializes TracerConfig with serde-boundary detection for enabled:
an absent key means “not explicitly set” (enabled = false,
tracing_enabled_explicit = false), while any explicit enabled value
keeps the flag set so callers can honor it over implied enabling.
impl<'de> Deserialize<'de> for TracerConfig
Deserializes TracerConfig with serde-boundary detection for enabled:
an absent key means “not explicitly set” (enabled = false,
tracing_enabled_explicit = false), while any explicit enabled value
keeps the flag set so callers can honor it over implied enabling.
The intermediate Raw struct mirrors the public field set and its serde
attributes (#[serde(default)] behavior on other fields is unchanged).