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.). - 
  
    
      #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
      117 118 119  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 117 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
      106 107  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 106 def (type, object, context) end  | 
  
#begin_dataloader(dataloader) ⇒ void
This method returns an undefined value.
A dataloader run is starting
      149  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 149 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
      158  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 158 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
      134 135  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 134 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
      174  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 174 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
      183  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 183 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
      179  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 179 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
      167  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 167 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
      171  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 171 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
      114 115  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 114 def (type, object, context, ) end  | 
  
#end_dataloader(dataloader) ⇒ void
This method returns an undefined value.
A dataloader run has ended
      153  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 153 def end_dataloader(dataloader); end  | 
  
#end_dataloader_source(source) ⇒ void
This method returns an undefined value.
A fetch call has just ended
      162  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 162 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
      143 144  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 143 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  | 
  
#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
      121 122 123  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 121 def resolve_type(query:, type:, object:) yield end  | 
  
#resolve_type_lazy(query:, type:, object:) ⇒ Object
      125 126 127  | 
    
      # File 'lib/graphql/tracing/trace.rb', line 125 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  |