Class: GraphQL::Tracing::Trace

Inherits:
Object
  • Object
show all
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

LegacyTrace

Instance Method Summary collapse

Constructor Details

#initialize(multiplex: nil, query: nil, **_options) ⇒ Trace

Returns a new instance of Trace.

Parameters:

[View source]

16
17
18
19
# File 'lib/graphql/tracing/trace.rb', line 16

def initialize(multiplex: nil, query: nil, **_options)
  @multiplex = multiplex
  @query = query
end

Instance Method Details

#analyze_multiplex(multiplex:) ⇒ void

This method returns an undefined value.

Parameters:

[View source]

58
59
60
# File 'lib/graphql/tracing/trace.rb', line 58

def analyze_multiplex(multiplex:)
  yield
end

#analyze_query(query:) ⇒ Object

[View source]

62
63
64
# File 'lib/graphql/tracing/trace.rb', line 62

def analyze_query(query:)
  yield
end

#authorized(query:, type:, object:) ⇒ Object

[View source]

114
115
116
# File 'lib/graphql/tracing/trace.rb', line 114

def authorized(query:, type:, object:)
  yield
end

#authorized_lazy(query:, type:, object:) ⇒ Object

[View source]

134
135
136
# File 'lib/graphql/tracing/trace.rb', line 134

def authorized_lazy(query:, type:, object:)
  yield
end

#begin_analyze_multiplex(multiplex, analyzers) ⇒ void

This method returns an undefined value.

Parameters:

[View source]

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

Parameters:

[View source]

123
124
# File 'lib/graphql/tracing/trace.rb', line 123

def begin_authorized(type, object, context)
end

#begin_dataloader(dataloader) ⇒ void

This method returns an undefined value.

A dataloader run is starting

Parameters:

[View source]

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

Parameters:

[View source]

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

Parameters:

[View source]

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.

Parameters:

[View source]

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.

Parameters:

  • query_str (String)
[View source]

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

Parameters:

[View source]

151
152
# File 'lib/graphql/tracing/trace.rb', line 151

def begin_resolve_type(type, value, context)
end

#begin_validate(query, validate) ⇒ Object

[View source]

42
43
# File 'lib/graphql/tracing/trace.rb', line 42

def begin_validate(query, validate)
end

#dataloader_fiber_exitvoid

This method returns an undefined value.

Called when an execution or source fiber terminates

[View source]

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

Parameters:

[View source]

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

Parameters:

[View source]

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

Parameters:

  • jobs (Array<#call>)

    Execution steps to run

[View source]

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

Parameters:

[View source]

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.

Parameters:

[View source]

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

Parameters:

[View source]

131
132
# File 'lib/graphql/tracing/trace.rb', line 131

def end_authorized(type, object, context, authorized_result)
end

#end_dataloader(dataloader) ⇒ void

This method returns an undefined value.

A dataloader run has ended

Parameters:

[View source]

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

Parameters:

[View source]

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

Parameters:

[View source]

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.

Parameters:

[View source]

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.

Parameters:

  • query_str (String)
[View source]

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

Parameters:

[View source]

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

[View source]

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

[View source]

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

[View source]

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.

Parameters:

[View source]

80
81
82
# File 'lib/graphql/tracing/trace.rb', line 80

def execute_multiplex(multiplex:)
  yield
end

#execute_query(query:) ⇒ Object

[View source]

84
85
86
# File 'lib/graphql/tracing/trace.rb', line 84

def execute_query(query:)
  yield
end

#execute_query_lazy(query:, multiplex:) ⇒ Object

[View source]

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.)

[View source]

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.

Parameters:

  • query_string (String)
[View source]

34
35
36
# File 'lib/graphql/tracing/trace.rb', line 34

def parse(query_string:)
  yield
end

#resolve_type(query:, type:, object:) ⇒ Object

[View source]

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

[View source]

142
143
144
# File 'lib/graphql/tracing/trace.rb', line 142

def resolve_type_lazy(query:, type:, object:)
  yield
end

#validate(query:, validate:) ⇒ Object

[View source]

38
39
40
# File 'lib/graphql/tracing/trace.rb', line 38

def validate(query:, validate:)
  yield
end