in graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/utils/SimpleQuerySignatureRepository.kt [51:87]
override fun get(
document: Document,
parameters: InstrumentationExecutionParameters,
): Optional<QuerySignatureRepository.QuerySignature> {
val timerSample = Timer.start(meterRegistry)
val tags = mutableListOf<Tag>()
val queryHash = QuerySignatureRepository.queryHash(parameters.query)
return try {
val result =
Optional.ofNullable(
computeQuerySignature(
queryHash,
parameters.operation,
document,
),
)
tags += CommonTags.SUCCESS.tag
return result
} catch (error: Throwable) {
tags += CommonTags.FAILURE.tags(error)
log.error(
"Failed to fetch query signature from cache, query [hash:{}, name:{}].",
queryHash,
parameters.operation,
)
Optional.empty()
} finally {
tags += CommonTags.JAVA_CLASS.tags(this)
tags += CommonTags.JAVA_CLASS_METHOD.tags("get")
timerSample.stop(
autoTimer
.builder(InternalMetric.TIMED_METHOD.key)
.tags(tags)
.register(meterRegistry),
)
}
}