diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index 4eefddcf..aadfe564 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -183,6 +183,9 @@ pub struct Config { #[serde(default)] #[cfg(feature = "perf_measurements")] pub allow_jaeger: bool, + #[serde(default = "default_jaeger_filter")] + #[cfg(feature = "perf_measurements")] + pub jaeger_filter: String, #[serde(default)] #[cfg(feature = "perf_measurements")] pub tracing_flame: bool, @@ -979,6 +982,14 @@ fn default_max_fetch_prev_events() -> u16 { 100_u16 } #[cfg(feature = "perf_measurements")] fn default_tracing_flame_filter() -> String { "trace,h2=off".to_owned() } +#[cfg(feature = "perf_measurements")] +fn default_jaeger_filter() -> String { + cfg!(debug_assertions) + .then_some("trace,h2=off") + .unwrap_or("info") + .to_owned() +} + #[cfg(feature = "perf_measurements")] fn default_tracing_flame_output_path() -> String { "./tracing.folded".to_owned() } diff --git a/src/main/tracing.rs b/src/main/tracing.rs index ccfe188d..67977088 100644 --- a/src/main/tracing.rs +++ b/src/main/tracing.rs @@ -55,6 +55,8 @@ pub(crate) fn init(config: &Config) -> Result<(LogLevelReloadHandles, TracingFla (None, None) }; + let jaeger_filter = EnvFilter::try_new(&config.jaeger_filter) + .map_err(|e| Error::BadConfig(format!("in the 'jaeger_filter' setting: {e}.")))?; let jaeger_layer = config.allow_jaeger.then(|| { opentelemetry::global::set_text_map_propagator(opentelemetry_jaeger::Propagator::new()); let tracer = opentelemetry_jaeger::new_agent_pipeline() @@ -63,10 +65,11 @@ pub(crate) fn init(config: &Config) -> Result<(LogLevelReloadHandles, TracingFla .install_batch(opentelemetry_sdk::runtime::Tokio) .expect("jaeger agent pipeline"); let telemetry = tracing_opentelemetry::layer().with_tracer(tracer); - let (jaeger_reload_filter, jaeger_reload_handle) = reload::Layer::new(console_filter.clone()); + let (jaeger_reload_filter, jaeger_reload_handle) = reload::Layer::new(jaeger_filter.clone()); reload_handles.add("jaeger", Box::new(jaeger_reload_handle)); Some(telemetry.with_filter(jaeger_reload_filter)) }); + let subscriber = subscriber.with(flame_layer).with(jaeger_layer); (subscriber, flame_guard) };