Какова наилучшая практика для очистки реестра Collector от метрик Prometheus при написании Spring Boot Test? - PullRequest
0 голосов
/ 08 октября 2019

Для каждого теста 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()

...