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_typeis 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_typejust 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
.executecall. -
#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_parserdoes.). -
#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 |