Module: GraphQL::Metrics::Trace
- Included in:
- Tracer
- Defined in:
- lib/graphql/metrics/trace.rb
Defined Under Namespace
Classes: PreContext
Instance Method Summary collapse
-
#analyze_multiplex(multiplex:) ⇒ Object
wraps all ‘analyze_query`s; only run once.
- #analyze_query(query:) ⇒ Object
- #execute_field(field:, query:, ast_node:, arguments:, object:) ⇒ Object
- #execute_field_lazy(field:, query:, ast_node:, arguments:, object:) ⇒ Object
-
#execute_multiplex(multiplex:) ⇒ Object
wraps everything below this line; only run once.
- #execute_query(query:) ⇒ Object
- #initialize(**_rest) ⇒ Object
-
#lex(query_string:) ⇒ Object
may not trigger if the query is passed in pre-parsed.
-
#parse(query_string:) ⇒ Object
may not trigger if the query is passed in pre-parsed.
- #validate(query:, validate:) ⇒ Object
Instance Method Details
#analyze_multiplex(multiplex:) ⇒ Object
wraps all ‘analyze_query`s; only run once
42 43 44 45 46 47 48 |
# File 'lib/graphql/metrics/trace.rb', line 42 def analyze_multiplex(multiplex:) return super if skip_tracing?(multiplex) # Ensures that we reset potentially long-lived PreContext objects between multiplexs. We reset at this point # since all parsing and validation will be done by this point, and a GraphQL::Query::Context will exist. pre_context.reset super end |
#analyze_query(query:) ⇒ Object
50 51 52 53 |
# File 'lib/graphql/metrics/trace.rb', line 50 def analyze_query(query:) return super if skip_tracing?(query) capture_analysis_time(query.context) { super } end |
#execute_field(field:, query:, ast_node:, arguments:, object:) ⇒ Object
60 61 62 63 64 |
# File 'lib/graphql/metrics/trace.rb', line 60 def execute_field(field:, query:, ast_node:, arguments:, object:) return super if skip_tracing?(query) || query.context[SKIP_FIELD_AND_ARGUMENT_METRICS] return super unless GraphQL::Metrics.timings_capture_enabled?(query.context) trace_field(GraphQL::Metrics::INLINE_FIELD_TIMINGS, query) { super } end |
#execute_field_lazy(field:, query:, ast_node:, arguments:, object:) ⇒ Object
66 67 68 69 70 |
# File 'lib/graphql/metrics/trace.rb', line 66 def execute_field_lazy(field:, query:, ast_node:, arguments:, object:) return super if skip_tracing?(query) || query.context[SKIP_FIELD_AND_ARGUMENT_METRICS] return super unless GraphQL::Metrics.timings_capture_enabled?(query.context) trace_field(GraphQL::Metrics::LAZY_FIELD_TIMINGS, query) { super } end |
#execute_multiplex(multiplex:) ⇒ Object
wraps everything below this line; only run once
19 20 21 22 |
# File 'lib/graphql/metrics/trace.rb', line 19 def execute_multiplex(multiplex:) return super if skip_tracing?(multiplex) capture_multiplex_start_time { super } end |
#execute_query(query:) ⇒ Object
55 56 57 58 |
# File 'lib/graphql/metrics/trace.rb', line 55 def execute_query(query:) return super if skip_tracing?(query) capture_query_start_time(query.context) { super } end |
#initialize(**_rest) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/graphql/metrics/trace.rb', line 6 def initialize(**_rest) super query_or_multiplex = @query || @multiplex @skip_tracing = query_or_multiplex.context&.fetch(SKIP_GRAPHQL_METRICS_ANALYSIS, false) if query_or_multiplex end |
#lex(query_string:) ⇒ Object
may not trigger if the query is passed in pre-parsed
25 26 27 28 |
# File 'lib/graphql/metrics/trace.rb', line 25 def lex(query_string:) return super if @skip_tracing capture_lexing_time { super } end |
#parse(query_string:) ⇒ Object
may not trigger if the query is passed in pre-parsed
31 32 33 34 |
# File 'lib/graphql/metrics/trace.rb', line 31 def parse(query_string:) return super if @skip_tracing capture_parsing_time { super } end |
#validate(query:, validate:) ⇒ Object
36 37 38 39 |
# File 'lib/graphql/metrics/trace.rb', line 36 def validate(query:, validate:) return super if skip_tracing?(query) capture_validation_time(query.context) { super } end |