in graphql-dgs-spring-boot-micrometer/src/jmh/kotlin/com/netflix/graphql/dgs/metrics/micrometer/DgsGraphQLMetricsInstrumentationBenchmark.kt [63:99]
open fun setup() {
val mockEnvironment = MockEnvironment()
applicationContext = AnnotationConfigApplicationContext()
applicationContext.environment = mockEnvironment
applicationContext.register(BenchmarkedDataFetcher::class.java)
applicationContext.refresh()
applicationContext.start()
val provider =
DgsSchemaProvider(
applicationContext = applicationContext,
federationResolver = Optional.empty(),
existingTypeDefinitionRegistry = Optional.empty(),
methodDataFetcherFactory =
MethodDataFetcherFactory(
listOf(
InputArgumentResolver(DefaultInputObjectMapper()),
DataFetchingEnvironmentArgumentResolver(),
FallbackEnvironmentArgumentResolver(DefaultInputObjectMapper()),
),
),
)
val simpleMeter = SimpleMeterRegistry()
val properties = DgsGraphQLMetricsProperties()
val metricsInstrumentation =
DgsGraphQLMetricsInstrumentation(
schemaProvider = provider,
registrySupplier = { simpleMeter },
tagsProvider = DgsGraphQLCollatedMetricsTagsProvider(),
properties = properties,
limitedTagMetricResolver = SpectatorLimitedTagMetricResolver(properties.tags),
)
graphql = GraphQL.newGraphQL(provider.schema(schema)).instrumentation(metricsInstrumentation).build()
}