Class GraphQlObservationInstrumentation
java.lang.Object
graphql.execution.instrumentation.SimplePerformantInstrumentation
org.springframework.graphql.observation.GraphQlObservationInstrumentation
- All Implemented Interfaces:
graphql.execution.instrumentation.Instrumentation
public class GraphQlObservationInstrumentation
extends graphql.execution.instrumentation.SimplePerformantInstrumentation
Instrumentation that creates
observations for GraphQL requests and data fetcher operations.
GraphQL request instrumentation measures the execution time of requests
and collects information from the ExecutionRequestObservationContext.
A request can perform many data fetching operations.
The configured ExecutionRequestObservationConvention will be used,
or the DefaultExecutionRequestObservationConvention if none was provided.
GraphQL data fetcher instrumentation measures the execution time of
a data fetching operation in the context of the current request.
Information is collected from the DataFetcherObservationContext.
The configured DataFetcherObservationConvention will be used,
or the DefaultDataFetcherObservationConvention if none was provided.
- Since:
- 1.1.0
- Author:
- Brian Clozel
-
Field Summary
Fields inherited from class graphql.execution.instrumentation.SimplePerformantInstrumentation
INSTANCE -
Constructor Summary
ConstructorsConstructorDescriptionGraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry) Create anGraphQlObservationInstrumentationthat records observations against the givenObservationRegistry.GraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ExecutionRequestObservationConvention requestObservationConvention, @Nullable DataFetcherObservationConvention dateFetcherObservationConvention) Deprecated, for removal: This API element is subject to removal in a future version.GraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ExecutionRequestObservationConvention requestObservationConvention, @Nullable DataFetcherObservationConvention dateFetcherObservationConvention, @Nullable DataLoaderObservationConvention dataLoaderObservationConvention) Create anGraphQlObservationInstrumentationthat records observations against the givenObservationRegistrywith a custom convention. -
Method Summary
Modifier and TypeMethodDescription@Nullable graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult> beginExecuteOperation(graphql.execution.instrumentation.parameters.InstrumentationExecuteOperationParameters parameters, graphql.execution.instrumentation.InstrumentationState state) @Nullable graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult> beginExecution(graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters parameters, graphql.execution.instrumentation.InstrumentationState state) CompletableFuture<graphql.execution.instrumentation.InstrumentationState> createStateAsync(graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters parameters) graphql.schema.DataFetcher<?> instrumentDataFetcher(graphql.schema.DataFetcher<?> dataFetcher, graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters parameters, graphql.execution.instrumentation.InstrumentationState state) @NonNull graphql.ExecutionInputinstrumentExecutionInput(graphql.ExecutionInput executionInput, graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters parameters, graphql.execution.instrumentation.InstrumentationState state) Methods inherited from class graphql.execution.instrumentation.SimplePerformantInstrumentation
beginExecuteObject, beginExecutionStrategy, beginFieldCompletion, beginFieldExecution, beginFieldFetch, beginFieldListCompletion, beginParse, beginSubscribedFieldEvent, beginValidation, createState, instrumentDocumentAndVariables, instrumentExecutionContext, instrumentExecutionResult, instrumentSchemaMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface graphql.execution.instrumentation.Instrumentation
beginDeferredField, beginFieldFetching
-
Constructor Details
-
GraphQlObservationInstrumentation
public GraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry) Create anGraphQlObservationInstrumentationthat records observations against the givenObservationRegistry. The default observation conventions will be used.- Parameters:
observationRegistry- the registry to use for recording observations
-
GraphQlObservationInstrumentation
@Deprecated(since="1.4.0", forRemoval=true) public GraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ExecutionRequestObservationConvention requestObservationConvention, @Nullable DataFetcherObservationConvention dateFetcherObservationConvention) Deprecated, for removal: This API element is subject to removal in a future version.Create anGraphQlObservationInstrumentationthat records observations against the givenObservationRegistrywith a custom convention.- Parameters:
observationRegistry- the registry to use for recording observationsrequestObservationConvention- the convention to use for request observationsdateFetcherObservationConvention- the convention to use for data fetcher observations
-
GraphQlObservationInstrumentation
public GraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ExecutionRequestObservationConvention requestObservationConvention, @Nullable DataFetcherObservationConvention dateFetcherObservationConvention, @Nullable DataLoaderObservationConvention dataLoaderObservationConvention) Create anGraphQlObservationInstrumentationthat records observations against the givenObservationRegistrywith a custom convention.- Parameters:
observationRegistry- the registry to use for recording observationsrequestObservationConvention- the convention to use for request observationsdateFetcherObservationConvention- the convention to use for data fetcher observationsdataLoaderObservationConvention- the convention to use for data loader observations- Since:
- 1.4.0
-
-
Method Details
-
instrumentExecutionInput
public @NonNull graphql.ExecutionInput instrumentExecutionInput(graphql.ExecutionInput executionInput, graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters parameters, graphql.execution.instrumentation.InstrumentationState state) - Specified by:
instrumentExecutionInputin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
instrumentExecutionInputin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
createStateAsync
public CompletableFuture<graphql.execution.instrumentation.InstrumentationState> createStateAsync(graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters parameters) - Specified by:
createStateAsyncin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
createStateAsyncin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
beginExecution
public @Nullable graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult> beginExecution(graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters parameters, graphql.execution.instrumentation.InstrumentationState state) - Specified by:
beginExecutionin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
beginExecutionin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
beginExecuteOperation
public @Nullable graphql.execution.instrumentation.InstrumentationContext<graphql.ExecutionResult> beginExecuteOperation(graphql.execution.instrumentation.parameters.InstrumentationExecuteOperationParameters parameters, graphql.execution.instrumentation.InstrumentationState state) - Specified by:
beginExecuteOperationin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
beginExecuteOperationin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
instrumentDataFetcher
public graphql.schema.DataFetcher<?> instrumentDataFetcher(graphql.schema.DataFetcher<?> dataFetcher, graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters parameters, graphql.execution.instrumentation.InstrumentationState state) - Specified by:
instrumentDataFetcherin interfacegraphql.execution.instrumentation.Instrumentation- Overrides:
instrumentDataFetcherin classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
GraphQlObservationInstrumentation(ObservationRegistry, ExecutionRequestObservationConvention, DataFetcherObservationConvention, DataLoaderObservationConvention)