Skip to content

Commit

Permalink
Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
srinivasankavitha committed Dec 6, 2022
1 parent 711cc08 commit f12d035
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 26 deletions.
Expand Up @@ -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.*
Expand All @@ -38,18 +39,18 @@ class DgsGraphQLCollatedMetricsTagsProvider(

override fun getExecutionTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationExecutionParameters,
result: ExecutionResult,
exception: Throwable?
): Iterable<Tag> {
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<Tag> {
return Tags.of(fieldFetchTagCustomizer.flatMap { it.getFieldFetchTags(state, context, exception) })
return Tags.of(fieldFetchTagCustomizer.flatMap { it.getFieldFetchTags(state, parameters, exception) })
}
}
@@ -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
Expand Down Expand Up @@ -62,7 +61,6 @@ class DgsGraphQLMetricsInstrumentation(
state: InstrumentationState
): InstrumentationContext<ExecutionResult> {
val miState: MetricsInstrumentationState = state as MetricsInstrumentationState
val context: DgsContext = parameters.getContext()
miState.startTimer()

miState.operationName = Optional.ofNullable(parameters.operation)
Expand All @@ -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())
)
}
Expand All @@ -92,11 +90,10 @@ class DgsGraphQLMetricsInstrumentation(
state: InstrumentationState
): CompletableFuture<ExecutionResult> {
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
Expand All @@ -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 ||
Expand All @@ -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
}
}
Expand Down Expand Up @@ -203,13 +199,13 @@ class DgsGraphQLMetricsInstrumentation(
registry: MeterRegistry,
timerSampler: Timer.Sample,
state: MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationFieldFetchParameters,
error: Throwable?,
baseTags: Iterable<Tag>
) {
val recordedTags = Tags
.of(baseTags)
.and(tagsProvider.getFieldFetchTags(state, context, error))
.and(tagsProvider.getFieldFetchTags(state, parameters, error))

timerSampler.stop(
properties
Expand Down
Expand Up @@ -16,17 +16,17 @@

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
fun interface DgsExecutionTagCustomizer {

fun getExecutionTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationExecutionParameters,
result: ExecutionResult,
exception: Throwable?
): Iterable<Tag>
Expand Down
Expand Up @@ -16,16 +16,16 @@

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
fun interface DgsFieldFetchTagCustomizer {

fun getFieldFetchTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationFieldFetchParameters,
error: Throwable?
): Iterable<Tag>
}
Expand Up @@ -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

Expand All @@ -28,14 +29,14 @@ interface DgsGraphQLMetricsTagsProvider {

fun getExecutionTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationExecutionParameters,
result: ExecutionResult,
exception: Throwable?
): Iterable<Tag> = Tags.empty()

fun getFieldFetchTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationFieldFetchParameters,
exception: Throwable?
): Iterable<Tag> = Tags.empty()
}
Expand Up @@ -16,18 +16,19 @@

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

class SimpleGqlOutcomeTagCustomizer : DgsExecutionTagCustomizer, DgsFieldFetchTagCustomizer {

override fun getExecutionTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationExecutionParameters,
result: ExecutionResult,
exception: Throwable?
): Iterable<Tag> {
Expand All @@ -40,7 +41,7 @@ class SimpleGqlOutcomeTagCustomizer : DgsExecutionTagCustomizer, DgsFieldFetchTa

override fun getFieldFetchTags(
state: DgsGraphQLMetricsInstrumentation.MetricsInstrumentationState,
context: DgsContext,
parameters: InstrumentationFieldFetchParameters,
error: Throwable?
): Iterable<Tag> {
return if (error == null) {
Expand Down

0 comments on commit f12d035

Please sign in to comment.