set graphql.resolve span as the active span in scope when executing the resolve function#7624
Closed
lukiano wants to merge 1 commit into
Closed
set graphql.resolve span as the active span in scope when executing the resolve function#7624lukiano wants to merge 1 commit into
lukiano wants to merge 1 commit into
Conversation
…he resolve function
BridgeAR
added a commit
that referenced
this pull request
May 26, 2026
`tracer.startSpan(...)` calls inside a graphql resolver parented under
`graphql.execute` instead of the field's `graphql.resolve` span, because the
resolve plugin populated `fieldCtx.currentStore` without entering it on
`storage('legacy')`. Migrate the resolve channel to the same `runStores` +
`bindStart` shape `wrapExecute` already uses in this file: the plugin's
`bindStart` returns the new store on first encounter, the parent ALS store on
depth/collapse-filtered fields, and the cached store when the same field is
revisited (collapsed list siblings).
`apm:graphql:resolve:start` subscribers (today: IAST taint-tracking) now fire
once per resolver invocation rather than once per field path. For non-collapsed
queries that is unchanged; for collapsed list fields it tags every sibling's
args instead of only the first.
Co-authored-by: Luciano Leggieri <[email protected]>
Refs: #7624
Contributor
|
This pull request has been marked as stale due to 90 days of inactivity. |
Member
|
@lukiano just a brief update: thank you for the PR! That definitely seems like something we should do. I wanted to include that after our OrchestrionJS rewrite which should land in about a week. |
Member
|
This got superseded and the fix is released in our latest version |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Makes a change in the GraphQL instrumentation so that the active scope when executing a
resolvefunction is thegraphql.resolvespan instead of thegraphql.executespan.Motivation
Currently, spans created in a GraphQL
resolvefunction are children ofgraphql.executeand siblings of thegraphql.resolvethat belongs to the field being resolved. Therefore, the hierarchy doesn't appear to be correct in Datadog APM.Additional Notes
There's likely a better way to do this, but I'm not familiar enough with the internals.