From 4a612da189eb22b8ab9994308d354d4e03eea3b7 Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Wed, 10 Sep 2025 09:32:57 +1000 Subject: [PATCH] fix(relay): filter traces by log filter (#10317) We want to control which traces are collected and sent to OTEL with the log filter. To do that, we need to also apply the supplied log filter to the tracer. --- rust/relay/server/src/main.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/rust/relay/server/src/main.rs b/rust/relay/server/src/main.rs index 6eec8fe9f..051caca64 100644 --- a/rust/relay/server/src/main.rs +++ b/rust/relay/server/src/main.rs @@ -331,15 +331,20 @@ fn setup_tracing(args: &Args) -> Result { tracing::trace!(target: "relay", "Successfully initialized metric provider on tokio runtime"); - let (filter, reload_handle) = firezone_logging::try_filter(&directives)?; + let (log_filter, log_reload_handle) = firezone_logging::try_filter(&directives)?; + let (otel_filter, otel_reload_handle) = firezone_logging::try_filter(&directives)?; let dispatch: Dispatch = tracing_subscriber::registry() - .with(log_layer(args).with_filter(filter)) - .with(tracing_opentelemetry::layer().with_tracer(tracer_provider.tracer("relay"))) + .with(log_layer(args).with_filter(log_filter)) + .with( + tracing_opentelemetry::layer() + .with_tracer(tracer_provider.tracer("relay")) + .with_filter(otel_filter), + ) .with(sentry_layer()) .into(); - (dispatch, reload_handle) + (dispatch, log_reload_handle.merge(otel_reload_handle)) } };