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_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_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.). - #object_loaded(argument_definition, object, context) ⇒ Object
- #objects(type, object, context) ⇒ Object
- #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.
52 53 54 |
# File 'lib/graphql/tracing/trace.rb', line 52 def analyze_multiplex(multiplex:) yield end |
#analyze_query(query:) ⇒ Object
56 57 58 |
# File 'lib/graphql/tracing/trace.rb', line 56 def analyze_query(query:) yield end |
#authorized(query:, type:, object:) ⇒ Object
97 98 99 |
# File 'lib/graphql/tracing/trace.rb', line 97 def (query:, type:, object:) yield end |
#authorized_lazy(query:, type:, object:) ⇒ Object
123 124 125 |
# File 'lib/graphql/tracing/trace.rb', line 123 def (query:, type:, object:) yield end |
#begin_analyze_multiplex(multiplex, analyzers) ⇒ void
This method returns an undefined value.
45 |
# File 'lib/graphql/tracing/trace.rb', line 45 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
112 113 |
# File 'lib/graphql/tracing/trace.rb', line 112 def (type, object, context) end |
#begin_dataloader(dataloader) ⇒ void
This method returns an undefined value.
A dataloader run is starting
155 |
# File 'lib/graphql/tracing/trace.rb', line 155 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
164 |
# File 'lib/graphql/tracing/trace.rb', line 164 def begin_dataloader_source(source); end |
#begin_execute_field(field, object, arguments, query) ⇒ Object
GraphQL is about to resolve this field
80 |
# File 'lib/graphql/tracing/trace.rb', line 80 def begin_execute_field(field, object, arguments, query); end |
#begin_resolve_type(type, value, context) ⇒ void
This method returns an undefined value.
A call to .resolve_type is starting
140 141 |
# File 'lib/graphql/tracing/trace.rb', line 140 def begin_resolve_type(type, value, context) end |
#begin_validate(query, validate) ⇒ Object
36 37 |
# File 'lib/graphql/tracing/trace.rb', line 36 def begin_validate(query, validate) end |
#dataloader_fiber_exit ⇒ void
This method returns an undefined value.
Called when an execution or source fiber terminates
180 |
# File 'lib/graphql/tracing/trace.rb', line 180 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
189 |
# File 'lib/graphql/tracing/trace.rb', line 189 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
185 |
# File 'lib/graphql/tracing/trace.rb', line 185 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
173 |
# File 'lib/graphql/tracing/trace.rb', line 173 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
177 |
# File 'lib/graphql/tracing/trace.rb', line 177 def dataloader_spawn_source_fiber(pending_sources); end |
#end_analyze_multiplex(multiplex, analyzers) ⇒ void
This method returns an undefined value.
49 |
# File 'lib/graphql/tracing/trace.rb', line 49 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
120 121 |
# File 'lib/graphql/tracing/trace.rb', line 120 def (type, object, context, ) end |
#end_dataloader(dataloader) ⇒ void
This method returns an undefined value.
A dataloader run has ended
159 |
# File 'lib/graphql/tracing/trace.rb', line 159 def end_dataloader(dataloader); end |
#end_dataloader_source(source) ⇒ void
This method returns an undefined value.
A fetch call has just ended
168 |
# File 'lib/graphql/tracing/trace.rb', line 168 def end_dataloader_source(source); end |
#end_execute_field(field, object, arguments, query, result) ⇒ Object
GraphQL just finished resolving this field
87 |
# File 'lib/graphql/tracing/trace.rb', line 87 def end_execute_field(field, object, arguments, query, result); end |
#end_resolve_type(type, value, context, resolved_type) ⇒ void
This method returns an undefined value.
A call to .resolve_type just ended
149 150 |
# File 'lib/graphql/tracing/trace.rb', line 149 def end_resolve_type(type, value, context, resolved_type) end |
#end_validate(query, validate, errors) ⇒ Object
39 40 |
# File 'lib/graphql/tracing/trace.rb', line 39 def end_validate(query, validate, errors) end |
#execute_field(field:, query:, ast_node:, arguments:, object:) ⇒ Object
89 90 91 |
# File 'lib/graphql/tracing/trace.rb', line 89 def execute_field(field:, query:, ast_node:, arguments:, object:) yield end |
#execute_field_lazy(field:, query:, ast_node:, arguments:, object:) ⇒ Object
93 94 95 |
# File 'lib/graphql/tracing/trace.rb', line 93 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.
63 64 65 |
# File 'lib/graphql/tracing/trace.rb', line 63 def execute_multiplex(multiplex:) yield end |
#execute_query(query:) ⇒ Object
67 68 69 |
# File 'lib/graphql/tracing/trace.rb', line 67 def execute_query(query:) yield end |
#execute_query_lazy(query:, multiplex:) ⇒ Object
71 72 73 |
# File 'lib/graphql/tracing/trace.rb', line 71 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 |
#object_loaded(argument_definition, object, context) ⇒ Object
104 105 |
# File 'lib/graphql/tracing/trace.rb', line 104 def object_loaded(argument_definition, object, context) end |
#objects(type, object, context) ⇒ Object
101 102 |
# File 'lib/graphql/tracing/trace.rb', line 101 def objects(type, object, context) end |
#parse(query_string:) ⇒ void
This method returns an undefined value.
28 29 30 |
# File 'lib/graphql/tracing/trace.rb', line 28 def parse(query_string:) yield end |
#resolve_type(query:, type:, object:) ⇒ Object
127 128 129 |
# File 'lib/graphql/tracing/trace.rb', line 127 def resolve_type(query:, type:, object:) yield end |
#resolve_type_lazy(query:, type:, object:) ⇒ Object
131 132 133 |
# File 'lib/graphql/tracing/trace.rb', line 131 def resolve_type_lazy(query:, type:, object:) yield end |
#validate(query:, validate:) ⇒ Object
32 33 34 |
# File 'lib/graphql/tracing/trace.rb', line 32 def validate(query:, validate:) yield end |