From 4137338fa9ae1379cfac8c9b1317c56bbe23d170 Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:01:25 +0200 Subject: [PATCH 1/3] fix(telemetry): don't include metric events in spans Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- apollo-router/src/plugins/telemetry/otel/layer.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apollo-router/src/plugins/telemetry/otel/layer.rs b/apollo-router/src/plugins/telemetry/otel/layer.rs index 51922f4833..495d22f8ec 100644 --- a/apollo-router/src/plugins/telemetry/otel/layer.rs +++ b/apollo-router/src/plugins/telemetry/otel/layer.rs @@ -42,6 +42,7 @@ use crate::plugins::telemetry::consts::OTEL_STATUS_CODE; use crate::plugins::telemetry::consts::OTEL_STATUS_MESSAGE; use crate::plugins::telemetry::consts::REQUEST_SPAN_NAME; use crate::plugins::telemetry::consts::ROUTER_SPAN_NAME; +use crate::plugins::telemetry::formatters::filter_metric_events; use crate::plugins::telemetry::reload::IsSampled; use crate::plugins::telemetry::reload::SampledSpan; use crate::plugins::telemetry::reload::SPAN_SAMPLING_RATE; @@ -960,6 +961,10 @@ where /// [`ERROR`]: tracing::Level::ERROR /// [`Error`]: opentelemetry::trace::StatusCode::Error fn on_event(&self, event: &Event<'_>, ctx: Context<'_, S>) { + // Don't include deprecated metric events + if !filter_metric_events(event) { + return; + } // Ignore events that are not in the context of a span if let Some(span) = ctx.lookup_current() { let mut extensions = span.extensions_mut(); From 757d7f6165139bb81b17bd31d4e072a8ff4fa22f Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Fri, 12 Jul 2024 15:03:20 +0200 Subject: [PATCH 2/3] changelog Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- .changesets/fix_bnjjj_filter_metric_events.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changesets/fix_bnjjj_filter_metric_events.md diff --git a/.changesets/fix_bnjjj_filter_metric_events.md b/.changesets/fix_bnjjj_filter_metric_events.md new file mode 100644 index 0000000000..0e441eb80d --- /dev/null +++ b/.changesets/fix_bnjjj_filter_metric_events.md @@ -0,0 +1,5 @@ +### Don't include metric events in spans ([PR #5649](https://github.com/apollographql/router/pull/5649)) + +Previously some internal metric events were included in traces and spans. This PR remove this noise. + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/5649 \ No newline at end of file From 2cb50b6647e92adc9219d9da056b805e0b673b70 Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Tue, 16 Jul 2024 16:58:43 +0200 Subject: [PATCH 3/3] add test Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- apollo-router/tests/integration/telemetry/jaeger.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apollo-router/tests/integration/telemetry/jaeger.rs b/apollo-router/tests/integration/telemetry/jaeger.rs index 6003efea04..00f12d41ff 100644 --- a/apollo-router/tests/integration/telemetry/jaeger.rs +++ b/apollo-router/tests/integration/telemetry/jaeger.rs @@ -342,7 +342,6 @@ async fn validate_trace( .finish(); let id = id.to_string(); - println!("trace id: {}", id); let url = format!("http://localhost:16686/api/traces/{id}?{params}"); for _ in 0..10 { if find_valid_trace( @@ -428,6 +427,12 @@ fn verify_router_span_fields( .first(), Some(&&Value::String("1.0".to_string())) ); + assert!(router_span + .select_path("$.logs[*].fields[?(@.key == 'histogram.apollo_router_span')].value")? + .is_empty(),); + assert!(router_span + .select_path("$.logs[*].fields[?(@.key == 'histogram.apollo_router_span')].value")? + .is_empty(),); if custom_span_instrumentation { assert_eq!( router_span