Для каждого теста Spring Boot, который вызывает определенные методы, связанные с метриками prometheus (датчик, счетчик, гистограмма и сводка)
Я должен добавить ResetMetricsTestExecutionListener в виде кода ниже
@SpringBootTest
@TestExecutionListeners(listeners = [ResetMetricsTestExecutionListener::class], mergeMode = TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS)
internal class WhateverSpringTest {
}
где ResetMetricsTestExecutionListener:
class ResetMetricsTestExecutionListener: AbstractTestExecutionListener() {
@Override
override fun beforeTestMethod(testContext: TestContext) {
CollectorRegistry.defaultRegistry.clear()
}
}
Итак, мой вопрос: Is there another way, where I shouldn't add @TestExecutionListeners annotation for each Spring Boot test?
PS: мой код на языке котлина
PS: в моем случае я использую Gaugeметрики. Код ниже:
private val gaugeMetric = Gauge.build()
.name("inprogress_requests")
.help("Number of inprogress requests")
.labelNames("method")
.register()
и в некоторых местах я делаю:
gaugeMetric.labels("some_label_name").inc()
ИЛИ gaugeMetric.labels("some_method_name").dec()