override fun get()

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),
            )
        }
    }