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 anGraphQlObservationInstrumentation
that 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 anGraphQlObservationInstrumentation
that records observations against the givenObservationRegistry
with 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.ExecutionInput
instrumentExecutionInput
(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, instrumentSchema
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface graphql.execution.instrumentation.Instrumentation
beginDeferredField, beginFieldFetching
-
Constructor Details
-
GraphQlObservationInstrumentation
public GraphQlObservationInstrumentation(io.micrometer.observation.ObservationRegistry observationRegistry) Create anGraphQlObservationInstrumentation
that 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 anGraphQlObservationInstrumentation
that records observations against the givenObservationRegistry
with 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 anGraphQlObservationInstrumentation
that records observations against the givenObservationRegistry
with 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:
instrumentExecutionInput
in interfacegraphql.execution.instrumentation.Instrumentation
- Overrides:
instrumentExecutionInput
in classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
createStateAsync
public CompletableFuture<graphql.execution.instrumentation.InstrumentationState> createStateAsync(graphql.execution.instrumentation.parameters.InstrumentationCreateStateParameters parameters) - Specified by:
createStateAsync
in interfacegraphql.execution.instrumentation.Instrumentation
- Overrides:
createStateAsync
in 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:
beginExecution
in interfacegraphql.execution.instrumentation.Instrumentation
- Overrides:
beginExecution
in 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:
beginExecuteOperation
in interfacegraphql.execution.instrumentation.Instrumentation
- Overrides:
beginExecuteOperation
in 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:
instrumentDataFetcher
in interfacegraphql.execution.instrumentation.Instrumentation
- Overrides:
instrumentDataFetcher
in classgraphql.execution.instrumentation.SimplePerformantInstrumentation
-
GraphQlObservationInstrumentation(ObservationRegistry, ExecutionRequestObservationConvention, DataFetcherObservationConvention, DataLoaderObservationConvention)