Skip to content

Commit c93c215

Browse files
committed
Add partial tracing
1 parent 749b670 commit c93c215

2 files changed

Lines changed: 14 additions & 6 deletions

File tree

lib/graphql/execution/interpreter.rb

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,9 @@ def run_partials(schema, partials, context:)
159159
dataloader.append_job {
160160
runtime = Runtime.new(query: partial, lazies_at_depth: lazies_at_depth)
161161
partial.context.namespace(:interpreter_runtime)[:runtime] = runtime
162-
# TODO tracing?
163-
runtime.run_partial_eager
162+
partial.current_trace.execute_query(query: partial) do
163+
runtime.run_partial_eager
164+
end
164165
}
165166
end
166167

@@ -171,8 +172,10 @@ def run_partials(schema, partials, context:)
171172
runtime = partial.context.namespace(:interpreter_runtime)[:runtime]
172173
runtime.final_result
173174
end
174-
# TODO tracing?
175-
Interpreter::Resolve.resolve_each_depth(lazies_at_depth, multiplex.dataloader)
175+
partial = partials.length == 1 ? partials.first : nil
176+
multiplex.current_trace.execute_query_lazy(multiplex: multiplex, query: partial) do
177+
Interpreter::Resolve.resolve_each_depth(lazies_at_depth, multiplex.dataloader)
178+
end
176179
}
177180

178181
dataloader.run

lib/graphql/query/partial.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
# frozen_string_literal: true
22
module GraphQL
33
class Query
4-
# This class is _like_ a {GraphQL::Query}, except
5-
# @see Query#run_partials
4+
# This class is _like_ a {GraphQL::Query}, except it can run on an arbitrary path within a query string.
5+
#
6+
# It depends on a "parent" {Query}.
7+
#
8+
# During execution, it calls query-related tracing hooks but passes itself as `query:`.
9+
#
10+
# @see Query#run_partials Run via {Query#run_partials}
611
class Partial
712
include Query::Runnable
813

0 commit comments

Comments
 (0)