in graphql-dgs-spring-boot-micrometer/src/main/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMicrometerAutoConfiguration.kt [82:139]
open fun collatedMetricsTagsProvider(
contextualTagCustomizer: Collection<DgsContextualTagCustomizer>,
executionTagCustomizer: Collection<DgsExecutionTagCustomizer>,
fieldFetchTagCustomizer: Collection<DgsFieldFetchTagCustomizer>,
): DgsGraphQLMetricsTagsProvider =
DgsGraphQLCollatedMetricsTagsProvider(
contextualTagCustomizer,
executionTagCustomizer,
fieldFetchTagCustomizer,
)
@Bean
@ConditionalOnMissingBean
open fun spectatorLimitedTagMetricResolve(properties: DgsGraphQLMetricsProperties): LimitedTagMetricResolver =
SpectatorLimitedTagMetricResolver(properties.tags)
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(DgsGraphQLMetricsProperties::class)
open class MetricsPropertiesConfiguration
@Configuration
@ConditionalOnProperty(
prefix = AUTO_CONF_QUERY_SIG_PREFIX,
name = ["enabled"],
havingValue = "true",
matchIfMissing = true,
)
open class QuerySignatureRepositoryConfiguration {
companion object {
const val AUTO_CONF_QUERY_SIG_CACHING_PREFIX = "$AUTO_CONF_QUERY_SIG_PREFIX.caching"
}
@Bean
@ConditionalOnMissingBean(value = [QuerySignatureRepository::class])
@ConditionalOnProperty(
prefix = AUTO_CONF_QUERY_SIG_CACHING_PREFIX,
name = ["enabled"],
havingValue = "true",
matchIfMissing = true,
)
open fun querySignatureCacheableRepository(
properties: DgsGraphQLMetricsProperties,
meterRegistrySupplier: DgsMeterRegistrySupplier,
optCacheManager: Optional<CacheManager>,
): QuerySignatureRepository =
CacheableQuerySignatureRepository(
autoTimer = PropertiesAutoTimer(properties.autotime),
meterRegistrySupplier = meterRegistrySupplier,
optionalCacheManager = optCacheManager,
)
@Bean
@ConditionalOnMissingBean(value = [QuerySignatureRepository::class])
open fun simpleQuerySignatureRepository(
properties: DgsGraphQLMetricsProperties,
meterRegistrySupplier: DgsMeterRegistrySupplier,
): QuerySignatureRepository = SimpleQuerySignatureRepository(PropertiesAutoTimer(properties.autotime), meterRegistrySupplier)
}