Skip to content

Commit 81720e8

Browse files
Geoffroy CouprieGeal
Geoffroy Couprie
authored andcommitted
keep the same parent span for prepare, execute and format
the spans for execute were considered root spans and did not appear under the graphql_request span
1 parent 6d18ef2 commit 81720e8

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

apollo-router-core/src/query_planner/model.rs

-1
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,6 @@ impl PlanNode {
242242
Arc::clone(&service_registry),
243243
Arc::clone(&schema),
244244
)
245-
.instrument(tracing::info_span!("execution"))
246245
.await;
247246

248247
// TODO: this is not great but there is no other way

apollo-router/src/apollo_router.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use apollo_router_core::prelude::graphql::*;
22
use derivative::Derivative;
33
use futures::prelude::*;
44
use std::sync::Arc;
5+
use tracing::{Instrument, Span};
56
use tracing_futures::WithSubscriber;
67

78
/// The default router of Apollo, suitable for most use cases.
@@ -88,6 +89,7 @@ pub struct ApolloPreparedQuery {
8889
impl PreparedQuery for ApolloPreparedQuery {
8990
#[tracing::instrument(level = "debug")]
9091
async fn execute(self, request: Arc<Request>) -> ResponseStream {
92+
let span = Span::current();
9193
stream::once(
9294
async move {
9395
let response_task = self
@@ -98,13 +100,17 @@ impl PreparedQuery for ApolloPreparedQuery {
98100
Arc::clone(&request),
99101
Arc::clone(&self.service_registry),
100102
Arc::clone(&self.schema),
101-
);
102-
let query_task = self.query_cache.get_query(&request.query);
103+
)
104+
.instrument(tracing::info_span!(parent: &span, "execution"));
105+
let query_task = self
106+
.query_cache
107+
.get_query(&request.query)
108+
.instrument(tracing::info_span!(parent: &span, "query_parsing"));
103109

104110
let (mut response, query) = tokio::join!(response_task, query_task);
105111

106112
if let Some(query) = query {
107-
tracing::debug_span!("format_response").in_scope(|| {
113+
tracing::debug_span!(parent: &span, "format_response").in_scope(|| {
108114
query.format_response(&mut response, request.operation_name.as_deref())
109115
});
110116
}

0 commit comments

Comments
 (0)