Module: ApolloFederation

Defined in:
lib/apollo-federation/tracing/tracer.rb,
lib/apollo-federation/any.rb,
lib/apollo-federation/field.rb,
lib/apollo-federation/entity.rb,
lib/apollo-federation/object.rb,
lib/apollo-federation/schema.rb,
lib/apollo-federation/service.rb,
lib/apollo-federation/tracing.rb,
lib/apollo-federation/version.rb,
lib/apollo-federation/interface.rb,
lib/apollo-federation/service_field.rb,
lib/apollo-federation/tracing/proto.rb,
lib/apollo-federation/entities_field.rb,
lib/apollo-federation/has_directives.rb,
lib/apollo-federation/tracing/node_map.rb,
lib/apollo-federation/field_set_serializer.rb,
lib/apollo-federation/federated_document_from_schema_definition.rb

Overview

Trace events are nested and fire in this order for a simple single-field query like `{ foo }`:

<execute_multiplex>

<lex></lex>
<parse></parse>
<validate></validate>
<analyze_multiplex>
  <analyze_query></analyze_query>
</analyze_multiplex>

<execute_query>
  <execute_field></execute_field>
</execute_query>

<execute_query_lazy>

  # `execute_field_lazy` fires *only* when the field is lazy
  # (https://graphql-ruby.org/schema/lazy_execution.html)
  # so if it fires we should overwrite the ending times recorded
  # in `execute_field` to capture the total execution time.

  <execute_field_lazy></execute_field_lazy>

</execute_query_lazy>

# `execute_query_lazy` *always* fires, so it's a
# safe place to capture ending times of the full query.

</execute_multiplex>

Defined Under Namespace

Modules: EntitiesField, Field, FieldSetSerializer, HasDirectives, Interface, Object, Schema, ServiceField, Tracing Classes: Any, Entity, FederatedDocumentFromSchemaDefinition, Service

Constant Summary collapse

VERSION =
'3.1.0'