From 2574eb672f43c26792736e0e7beecc73e5f559f2 Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Tue, 8 Nov 2022 10:13:55 +0100 Subject: [PATCH 1/4] do not expose the trace_id in response header right now Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- .../src/services/supergraph_service.rs | 32 +++++++++---------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/apollo-router/src/services/supergraph_service.rs b/apollo-router/src/services/supergraph_service.rs index 5f3c1b431e..47b6994b1a 100644 --- a/apollo-router/src/services/supergraph_service.rs +++ b/apollo-router/src/services/supergraph_service.rs @@ -3,11 +3,9 @@ use std::sync::Arc; use std::task::Poll; -use axum::headers::HeaderName; use futures::future::BoxFuture; use futures::stream::StreamExt; use futures::TryFutureExt; -use http::HeaderValue; use http::StatusCode; use indexmap::IndexMap; use multimap::MultiMap; @@ -40,7 +38,6 @@ use crate::query_planner::CachingQueryPlanner; use crate::router_factory::Endpoint; use crate::router_factory::SupergraphServiceFactory; use crate::services::layers::ensure_query_presence::EnsureQueryPresence; -use crate::tracer::TraceId; use crate::Configuration; use crate::Context; use crate::ExecutionRequest; @@ -103,8 +100,8 @@ where let schema = self.schema.clone(); let context_cloned = req.context.clone(); - let fut = service_call(planning, execution, schema, req) - .or_else(|error: BoxError| async move { + let fut = + service_call(planning, execution, schema, req).or_else(|error: BoxError| async move { let errors = vec![crate::error::Error { message: error.to_string(), extensions: serde_json_bytes::json!({ @@ -122,19 +119,20 @@ where .context(context_cloned) .build() .expect("building a response like this should not fail")) - }) - .and_then(|mut res| async move { - if let Some(trace_id) = TraceId::maybe_new().map(|t| t.to_string()) { - let header_value = HeaderValue::from_str(trace_id.as_str()); - if let Ok(header_value) = header_value { - res.response - .headers_mut() - .insert(HeaderName::from_static("apollo_trace_id"), header_value); - } - } - - Ok(res) }); + // FIXME: Enable it later + // .and_then(|mut res| async move { + // if let Some(trace_id) = TraceId::maybe_new().map(|t| t.to_string()) { + // let header_value = HeaderValue::from_str(trace_id.as_str()); + // if let Ok(header_value) = header_value { + // res.response + // .headers_mut() + // .insert(HeaderName::from_static("apollo_trace_id"), header_value); + // } + // } + + // Ok(res) + // }); Box::pin(fut) } From 1203d557eae4b1e5b2d379bc8508ff81d2b2abdd Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Tue, 8 Nov 2022 13:04:29 +0100 Subject: [PATCH 2/4] do not expose the trace_id in studio right now Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- .../plugins/telemetry/tracing/apollo_telemetry.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs b/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs index 2c812cc5d2..bc5ffee376 100644 --- a/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs +++ b/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs @@ -428,12 +428,13 @@ impl Exporter { .collect(); // For now, only trace_id let mut response_headers = HashMap::with_capacity(1); - response_headers.insert( - String::from("apollo_trace_id"), - Values { - value: vec![span.span_context.trace_id().to_string()], - }, - ); + // FIXME: uncomment later + // response_headers.insert( + // String::from("apollo_trace_id"), + // Values { + // value: vec![span.span_context.trace_id().to_string()], + // }, + // ); Http { method: method.into(), request_headers, From bb547058ab9e9613bc550d328e4d0e6075181e49 Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Tue, 8 Nov 2022 14:17:39 +0100 Subject: [PATCH 3/4] fix lint Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- .../src/plugins/telemetry/tracing/apollo_telemetry.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs b/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs index bc5ffee376..41800f6578 100644 --- a/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs +++ b/apollo-router/src/plugins/telemetry/tracing/apollo_telemetry.rs @@ -427,7 +427,7 @@ impl Exporter { .map(|(header_name, value)| (header_name.to_lowercase(), Values { value })) .collect(); // For now, only trace_id - let mut response_headers = HashMap::with_capacity(1); + // let mut response_headers = HashMap::with_capacity(1); // FIXME: uncomment later // response_headers.insert( // String::from("apollo_trace_id"), @@ -438,7 +438,7 @@ impl Exporter { Http { method: method.into(), request_headers, - response_headers, + response_headers: HashMap::new(), status_code: 0, } } From 58172245e9b2947192e1be85f442b7ad35df27e6 Mon Sep 17 00:00:00 2001 From: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:16:28 +0100 Subject: [PATCH 4/4] fix changelog Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com> --- NEXT_CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index efc3638410..7259d46ee1 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -36,7 +36,7 @@ By [@garypen](https://github.com/garypen) in https://github.com/apollographql/ro ### Add `trace_id` in logs to identify all logs related to a specific request ([Issue #1981](https://github.com/apollographql/router/issues/1981)) -It automatically adds a `trace_id` on logs to identify which log is related to a specific request. Also adds `apollo_trace_id` in response headers to help the client to identify logs for this request. +It automatically adds a `trace_id` on logs to identify which log is related to a specific request. Example of logs in text: