diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLCollatedMetricsTagsProvider.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLCollatedMetricsTagsProvider.kt index f582fd3688..92717a2929 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLCollatedMetricsTagsProvider.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLCollatedMetricsTagsProvider.kt @@ -16,12 +16,13 @@ package com.netflix.graphql.dgs.metrics.micrometer -import com.netflix.graphql.dgs.context.DgsContext import com.netflix.graphql.dgs.metrics.micrometer.tagging.DgsContextualTagCustomizer import com.netflix.graphql.dgs.metrics.micrometer.tagging.DgsExecutionTagCustomizer import com.netflix.graphql.dgs.metrics.micrometer.tagging.DgsFieldFetchTagCustomizer import com.netflix.graphql.dgs.metrics.micrometer.tagging.DgsGraphQLMetricsTagsProvider import graphql.ExecutionResult +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters +import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters import io.micrometer.core.instrument.Tag import io.micrometer.core.instrument.Tags import java.util.* @@ -38,18 +39,18 @@ class DgsGraphQLCollatedMetricsTagsProvider( override fun getExecutionTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationExecutionParameters, result: ExecutionResult, exception: Throwable? ): Iterable { - return Tags.of(executionTagCustomizer.flatMap { it.getExecutionTags(state, context, result, exception) }) + return Tags.of(executionTagCustomizer.flatMap { it.getExecutionTags(state, parameters, result, exception) }) } override fun getFieldFetchTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationFieldFetchParameters, exception: Throwable? ): Iterable { - return Tags.of(fieldFetchTagCustomizer.flatMap { it.getFieldFetchTags(state, context, exception) }) + return Tags.of(fieldFetchTagCustomizer.flatMap { it.getFieldFetchTags(state, parameters, exception) }) } } diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMetricsInstrumentation.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMetricsInstrumentation.kt index 6c9bbfe5e5..002229a2a2 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMetricsInstrumentation.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMetricsInstrumentation.kt @@ -1,7 +1,6 @@ package com.netflix.graphql.dgs.metrics.micrometer import com.netflix.graphql.dgs.Internal -import com.netflix.graphql.dgs.context.DgsContext import com.netflix.graphql.dgs.internal.DgsSchemaProvider import com.netflix.graphql.dgs.metrics.DgsMetrics.GqlMetric import com.netflix.graphql.dgs.metrics.DgsMetrics.GqlTag @@ -62,7 +61,6 @@ class DgsGraphQLMetricsInstrumentation( state: InstrumentationState ): InstrumentationContext { val miState: MetricsInstrumentationState = state as MetricsInstrumentationState - val context: DgsContext = parameters.getContext() miState.startTimer() miState.operationName = Optional.ofNullable(parameters.operation) @@ -79,7 +77,7 @@ class DgsGraphQLMetricsInstrumentation( properties.autotime .builder(GqlMetric.QUERY.key) .tags(tagsProvider.getContextualTags()) - .tags(tagsProvider.getExecutionTags(miState, context, result, exc)) + .tags(tagsProvider.getExecutionTags(miState, parameters, result, exc)) .tags(miState.tags()) ) } @@ -92,11 +90,10 @@ class DgsGraphQLMetricsInstrumentation( state: InstrumentationState ): CompletableFuture { val miState: MetricsInstrumentationState = state as MetricsInstrumentationState - val context: DgsContext = parameters.getContext() val tags = Tags.empty() .and(tagsProvider.getContextualTags()) - .and(tagsProvider.getExecutionTags(miState, context, executionResult, null)) + .and(tagsProvider.getExecutionTags(miState, parameters, executionResult, null)) .and(miState.tags()) ErrorUtils @@ -121,7 +118,6 @@ class DgsGraphQLMetricsInstrumentation( state: InstrumentationState ): DataFetcher<*> { val miState: MetricsInstrumentationState = state as MetricsInstrumentationState - val context: DgsContext = parameters.environment.getContext() val gqlField = TagUtils.resolveDataFetcherTagValue(parameters) if (parameters.isTrivialDataFetcher || @@ -148,17 +144,17 @@ class DgsGraphQLMetricsInstrumentation( registry, sampler, miState, - context, + parameters, error, baseTags ) } } else { - recordDataFetcherMetrics(registry, sampler, state, context, null, baseTags) + recordDataFetcherMetrics(registry, sampler, miState, parameters, null, baseTags) } result } catch (throwable: Throwable) { - recordDataFetcherMetrics(registry, sampler, state, context, throwable, baseTags) + recordDataFetcherMetrics(registry, sampler, miState, parameters, throwable, baseTags) throw throwable } } @@ -203,13 +199,13 @@ class DgsGraphQLMetricsInstrumentation( registry: MeterRegistry, timerSampler: Timer.Sample, state: MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationFieldFetchParameters, error: Throwable?, baseTags: Iterable ) { val recordedTags = Tags .of(baseTags) - .and(tagsProvider.getFieldFetchTags(state, context, error)) + .and(tagsProvider.getFieldFetchTags(state, parameters, error)) timerSampler.stop( properties diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsExecutionTagCustomizer.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsExecutionTagCustomizer.kt index cab66ed65b..79a46d2144 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsExecutionTagCustomizer.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsExecutionTagCustomizer.kt @@ -16,9 +16,9 @@ package com.netflix.graphql.dgs.metrics.micrometer.tagging -import com.netflix.graphql.dgs.context.DgsContext import com.netflix.graphql.dgs.metrics.micrometer.DgsGraphQLMetricsInstrumentation import graphql.ExecutionResult +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters import io.micrometer.core.instrument.Tag @FunctionalInterface @@ -26,7 +26,7 @@ fun interface DgsExecutionTagCustomizer { fun getExecutionTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationExecutionParameters, result: ExecutionResult, exception: Throwable? ): Iterable diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsFieldFetchTagCustomizer.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsFieldFetchTagCustomizer.kt index 7a96d9673b..a14e7e879e 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsFieldFetchTagCustomizer.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsFieldFetchTagCustomizer.kt @@ -16,8 +16,8 @@ package com.netflix.graphql.dgs.metrics.micrometer.tagging -import com.netflix.graphql.dgs.context.DgsContext import com.netflix.graphql.dgs.metrics.micrometer.DgsGraphQLMetricsInstrumentation +import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters import io.micrometer.core.instrument.Tag @FunctionalInterface @@ -25,7 +25,7 @@ fun interface DgsFieldFetchTagCustomizer { fun getFieldFetchTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationFieldFetchParameters, error: Throwable? ): Iterable } diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsGraphQLMetricsTagsProvider.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsGraphQLMetricsTagsProvider.kt index fa266bc336..5a7077ffb9 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsGraphQLMetricsTagsProvider.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/DgsGraphQLMetricsTagsProvider.kt @@ -16,9 +16,10 @@ package com.netflix.graphql.dgs.metrics.micrometer.tagging -import com.netflix.graphql.dgs.context.DgsContext import com.netflix.graphql.dgs.metrics.micrometer.DgsGraphQLMetricsInstrumentation import graphql.ExecutionResult +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters +import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters import io.micrometer.core.instrument.Tag import io.micrometer.core.instrument.Tags @@ -28,14 +29,14 @@ interface DgsGraphQLMetricsTagsProvider { fun getExecutionTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationExecutionParameters, result: ExecutionResult, exception: Throwable? ): Iterable = Tags.empty() fun getFieldFetchTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationFieldFetchParameters, exception: Throwable? ): Iterable = Tags.empty() } diff --git a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/SimpleGqlOutcomeTagCustomizer.kt b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/SimpleGqlOutcomeTagCustomizer.kt index 14f2486c6f..5b633d6f26 100644 --- a/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/SimpleGqlOutcomeTagCustomizer.kt +++ b/graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/tagging/SimpleGqlOutcomeTagCustomizer.kt @@ -16,10 +16,11 @@ package com.netflix.graphql.dgs.metrics.micrometer.tagging -import com.netflix.graphql.dgs.context.DgsContext import com.netflix.graphql.dgs.metrics.DgsMetrics.CommonTags.* import com.netflix.graphql.dgs.metrics.micrometer.DgsGraphQLMetricsInstrumentation import graphql.ExecutionResult +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters +import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters import io.micrometer.core.instrument.Tag import io.micrometer.core.instrument.Tags @@ -27,7 +28,7 @@ class SimpleGqlOutcomeTagCustomizer : DgsExecutionTagCustomizer, DgsFieldFetchTa override fun getExecutionTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationExecutionParameters, result: ExecutionResult, exception: Throwable? ): Iterable { @@ -40,7 +41,7 @@ class SimpleGqlOutcomeTagCustomizer : DgsExecutionTagCustomizer, DgsFieldFetchTa override fun getFieldFetchTags( state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState, - context: DgsContext, + parameters: InstrumentationFieldFetchParameters, error: Throwable? ): Iterable { return if (error == null) {