Class: GraphQL::Tracing::Trace
- Inherits:
-
Object
- Object
- GraphQL::Tracing::Trace
- Defined in:
- lib/graphql/tracing/trace.rb
Overview
This is the base class for a trace
instance whose methods are called during query execution.
“Trace modes” are subclasses of this with custom tracing modules mixed in.
A trace module may implement any of the methods on Trace
, being sure to call super
to continue any tracing hooks and call the actual runtime behavior.
Direct Known Subclasses
Instance Method Summary collapse
-
#analyze_multiplex(multiplex:) ⇒ void
-
#analyze_query(query:) ⇒ Object
-
#authorized(query:, type:, object:) ⇒ Object
-
#authorized_lazy(query:, type:, object:) ⇒ Object
-
#begin_analyze_multiplex(multiplex, analyzers) ⇒ void
-
#begin_authorized(type, object, context) ⇒ void
A call to
.authorized?
is starting. -
#begin_dataloader(dataloader) ⇒ void
A dataloader run is starting.
-
#begin_dataloader_source(source) ⇒ void
A source with pending keys is about to fetch.
-
#begin_execute_field(field, object, arguments, query) ⇒ Object
GraphQL is about to resolve this field.
-
#begin_execute_multiplex(multiplex) ⇒ void
This is the first event in the tracing lifecycle.
-
#begin_parse(query_str) ⇒ void
-
#begin_resolve_type(type, value, context) ⇒ void
A call to
.resolve_type
is starting. -
#begin_validate(query, validate) ⇒ Object
-
#dataloader_fiber_exit ⇒ void
Called when an execution or source fiber terminates.
-
#dataloader_fiber_resume(source) ⇒ void
Called when a Dataloader fiber is resumed because data has been loaded.
-
#dataloader_fiber_yield(source) ⇒ void
Called when a Dataloader fiber is paused to wait for data.
-
#dataloader_spawn_execution_fiber(jobs) ⇒ void
Called when Dataloader spins up a new fiber for GraphQL execution.
-
#dataloader_spawn_source_fiber(pending_sources) ⇒ void
Called when Dataloader spins up a new fiber for fetching data.
-
#end_analyze_multiplex(multiplex, analyzers) ⇒ void
-
#end_authorized(type, object, context, authorized_result) ⇒ void
A call to
.authorized?
just finished. -
#end_dataloader(dataloader) ⇒ void
A dataloader run has ended.
-
#end_dataloader_source(source) ⇒ void
A fetch call has just ended.
-
#end_execute_field(field, object, arguments, query, result) ⇒ Object
GraphQL just finished resolving this field.
-
#end_execute_multiplex(multiplex) ⇒ void
This is the last event of the tracing lifecycle.
-
#end_parse(query_str) ⇒ void
-
#end_resolve_type(type, value, context, resolved_type) ⇒ void
A call to
.resolve_type
just ended. -
#end_validate(query, validate, errors) ⇒ Object
-
#execute_field(field:, query:, ast_node:, arguments:, object:) ⇒ Object
-
#execute_field_lazy(field:, query:, ast_node:, arguments:, object:) ⇒ Object
-
#execute_multiplex(multiplex:) ⇒ void
This wraps an entire
.execute
call. -
#execute_query(query:) ⇒ Object
-
#execute_query_lazy(query:, multiplex:) ⇒ Object
-
#initialize(multiplex: nil, query: nil, **_options) ⇒ Trace
constructor
A new instance of Trace.
-
#lex(query_string:) ⇒ Object
The Ruby parser doesn’t call this method (
graphql/c_parser
does.). -
#parse(query_string:) ⇒ void
-
#resolve_type(query:, type:, object:) ⇒ Object
-
#resolve_type_lazy(query:, type:, object:) ⇒ Object
-
#validate(query:, validate:) ⇒ Object
Constructor Details
#initialize(multiplex: nil, query: nil, **_options) ⇒ Trace
Returns a new instance of Trace.
16 17 18 19 |
# File 'lib/graphql/tracing/trace.rb', line 16 def initialize(multiplex: nil, query: nil, **) @multiplex = multiplex @query = query end |
Instance Method Details
#analyze_multiplex(multiplex:) ⇒ void
This method returns an undefined value.
58 59 60 |
# File 'lib/graphql/tracing/trace.rb', line 58 def analyze_multiplex(multiplex:) yield end |
#analyze_query(query:) ⇒ Object
62 63 64 |
# File 'lib/graphql/tracing/trace.rb', line 62 def analyze_query(query:) yield end |
#authorized(query:, type:, object:) ⇒ Object
114 115 116 |
# File 'lib/graphql/tracing/trace.rb', line 114 def (query:, type:, object:) yield end |
#authorized_lazy(query:, type:, object:) ⇒ Object
134 135 136 |
# File 'lib/graphql/tracing/trace.rb', line 134 def (query:, type:, object:) yield end |
#begin_analyze_multiplex(multiplex, analyzers) ⇒ void
This method returns an undefined value.
51 |
# File 'lib/graphql/tracing/trace.rb', line 51 def begin_analyze_multiplex(multiplex, analyzers); end |
#begin_authorized(type, object, context) ⇒ void
This method returns an undefined value.
A call to .authorized?
is starting
123 124 |
# File 'lib/graphql/tracing/trace.rb', line 123 def (type, object, context) end |
#begin_dataloader(dataloader) ⇒ void
This method returns an undefined value.
A dataloader run is starting
166 |
# File 'lib/graphql/tracing/trace.rb', line 166 def begin_dataloader(dataloader); end |
#begin_dataloader_source(source) ⇒ void
This method returns an undefined value.
A source with pending keys is about to fetch
175 |
# File 'lib/graphql/tracing/trace.rb', line 175 def begin_dataloader_source(source); end |
#begin_execute_field(field, object, arguments, query) ⇒ Object
GraphQL is about to resolve this field
97 |
# File 'lib/graphql/tracing/trace.rb', line 97 def begin_execute_field(field, object, arguments, query); end |
#begin_execute_multiplex(multiplex) ⇒ void
This method returns an undefined value.
This is the first event in the tracing lifecycle. Every Query is technically run inside a Multiplex.
70 |
# File 'lib/graphql/tracing/trace.rb', line 70 def begin_execute_multiplex(multiplex); end |
#begin_parse(query_str) ⇒ void
This method returns an undefined value.
28 |
# File 'lib/graphql/tracing/trace.rb', line 28 def begin_parse(query_str); end |
#begin_resolve_type(type, value, context) ⇒ void
This method returns an undefined value.
A call to .resolve_type
is starting
151 152 |
# File 'lib/graphql/tracing/trace.rb', line 151 def begin_resolve_type(type, value, context) end |
#begin_validate(query, validate) ⇒ Object
42 43 |
# File 'lib/graphql/tracing/trace.rb', line 42 def begin_validate(query, validate) end |
#dataloader_fiber_exit ⇒ void
This method returns an undefined value.
Called when an execution or source fiber terminates
191 |
# File 'lib/graphql/tracing/trace.rb', line 191 def dataloader_fiber_exit; end |
#dataloader_fiber_resume(source) ⇒ void
This method returns an undefined value.
Called when a Dataloader fiber is resumed because data has been loaded
200 |
# File 'lib/graphql/tracing/trace.rb', line 200 def dataloader_fiber_resume(source); end |
#dataloader_fiber_yield(source) ⇒ void
This method returns an undefined value.
Called when a Dataloader fiber is paused to wait for data
196 |
# File 'lib/graphql/tracing/trace.rb', line 196 def dataloader_fiber_yield(source); end |
#dataloader_spawn_execution_fiber(jobs) ⇒ void
This method returns an undefined value.
Called when Dataloader spins up a new fiber for GraphQL execution
184 |
# File 'lib/graphql/tracing/trace.rb', line 184 def dataloader_spawn_execution_fiber(jobs); end |
#dataloader_spawn_source_fiber(pending_sources) ⇒ void
This method returns an undefined value.
Called when Dataloader spins up a new fiber for fetching data
188 |
# File 'lib/graphql/tracing/trace.rb', line 188 def dataloader_spawn_source_fiber(pending_sources); end |
#end_analyze_multiplex(multiplex, analyzers) ⇒ void
This method returns an undefined value.
55 |
# File 'lib/graphql/tracing/trace.rb', line 55 def end_analyze_multiplex(multiplex, analyzers); end |
#end_authorized(type, object, context, authorized_result) ⇒ void
This method returns an undefined value.
A call to .authorized?
just finished
131 132 |
# File 'lib/graphql/tracing/trace.rb', line 131 def (type, object, context, ) end |
#end_dataloader(dataloader) ⇒ void
This method returns an undefined value.
A dataloader run has ended
170 |
# File 'lib/graphql/tracing/trace.rb', line 170 def end_dataloader(dataloader); end |
#end_dataloader_source(source) ⇒ void
This method returns an undefined value.
A fetch call has just ended
179 |
# File 'lib/graphql/tracing/trace.rb', line 179 def end_dataloader_source(source); end |
#end_execute_field(field, object, arguments, query, result) ⇒ Object
GraphQL just finished resolving this field
104 |
# File 'lib/graphql/tracing/trace.rb', line 104 def end_execute_field(field, object, arguments, query, result); end |
#end_execute_multiplex(multiplex) ⇒ void
This method returns an undefined value.
This is the last event of the tracing lifecycle.
75 |
# File 'lib/graphql/tracing/trace.rb', line 75 def end_execute_multiplex(multiplex); end |
#end_parse(query_str) ⇒ void
This method returns an undefined value.
31 |
# File 'lib/graphql/tracing/trace.rb', line 31 def end_parse(query_str); end |
#end_resolve_type(type, value, context, resolved_type) ⇒ void
This method returns an undefined value.
A call to .resolve_type
just ended
160 161 |
# File 'lib/graphql/tracing/trace.rb', line 160 def end_resolve_type(type, value, context, resolved_type) end |
#end_validate(query, validate, errors) ⇒ Object
45 46 |
# File 'lib/graphql/tracing/trace.rb', line 45 def end_validate(query, validate, errors) end |
#execute_field(field:, query:, ast_node:, arguments:, object:) ⇒ Object
106 107 108 |
# File 'lib/graphql/tracing/trace.rb', line 106 def execute_field(field:, query:, ast_node:, arguments:, object:) yield end |
#execute_field_lazy(field:, query:, ast_node:, arguments:, object:) ⇒ Object
110 111 112 |
# File 'lib/graphql/tracing/trace.rb', line 110 def execute_field_lazy(field:, query:, ast_node:, arguments:, object:) yield end |
#execute_multiplex(multiplex:) ⇒ void
This method returns an undefined value.
This wraps an entire .execute
call.
80 81 82 |
# File 'lib/graphql/tracing/trace.rb', line 80 def execute_multiplex(multiplex:) yield end |
#execute_query(query:) ⇒ Object
84 85 86 |
# File 'lib/graphql/tracing/trace.rb', line 84 def execute_query(query:) yield end |
#execute_query_lazy(query:, multiplex:) ⇒ Object
88 89 90 |
# File 'lib/graphql/tracing/trace.rb', line 88 def execute_query_lazy(query:, multiplex:) yield end |
#lex(query_string:) ⇒ Object
The Ruby parser doesn’t call this method (graphql/c_parser
does.)
22 23 24 |
# File 'lib/graphql/tracing/trace.rb', line 22 def lex(query_string:) yield end |
#parse(query_string:) ⇒ void
This method returns an undefined value.
34 35 36 |
# File 'lib/graphql/tracing/trace.rb', line 34 def parse(query_string:) yield end |
#resolve_type(query:, type:, object:) ⇒ Object
138 139 140 |
# File 'lib/graphql/tracing/trace.rb', line 138 def resolve_type(query:, type:, object:) yield end |
#resolve_type_lazy(query:, type:, object:) ⇒ Object
142 143 144 |
# File 'lib/graphql/tracing/trace.rb', line 142 def resolve_type_lazy(query:, type:, object:) yield end |
#validate(query:, validate:) ⇒ Object
38 39 40 |
# File 'lib/graphql/tracing/trace.rb', line 38 def validate(query:, validate:) yield end |