diff --git a/plugins/catalog-backend/src/util/metrics.ts b/plugins/catalog-backend/src/util/metrics.ts index 4988af82ea..8edc721914 100644 --- a/plugins/catalog-backend/src/util/metrics.ts +++ b/plugins/catalog-backend/src/util/metrics.ts @@ -29,27 +29,49 @@ import { export function createCounterMetric( config: CounterConfiguration, ): Counter { - const existing = register.getSingleMetric(config.name) as Counter; - return existing || new Counter(config); + let metric = register.getSingleMetric(config.name); + if (!metric) { + const newMetric = new Counter(config); + register.registerMetric(newMetric); + metric = register.getSingleMetric(config.name); + } + return metric as Counter; } export function createGaugeMetric( config: GaugeConfiguration, ): Gauge { - const existing = register.getSingleMetric(config.name) as Gauge; - return existing || new Gauge(config); + let metric = register.getSingleMetric(config.name); + if (!metric) { + const newMetric = new Gauge(config); + register.registerMetric(newMetric); + metric = register.getSingleMetric(config.name); + } + return metric as Gauge; } export function createSummaryMetric( config: SummaryConfiguration, ): Summary { - const existing = register.getSingleMetric(config.name) as Summary; - return existing || new Summary(config); + let metric = register.getSingleMetric(config.name); + if (!metric) { + const newMetric = new Summary(config); + register.registerMetric(newMetric); + metric = register.getSingleMetric(config.name); + } + + return metric as Summary; } export function createHistogramMetric( config: HistogramConfiguration, ): Histogram { - const existing = register.getSingleMetric(config.name) as Histogram; - return existing || new Histogram(config); + let metric = register.getSingleMetric(config.name); + if (!metric) { + const newMetric = new Histogram(config); + register.registerMetric(newMetric); + metric = register.getSingleMetric(config.name); + } + + return metric as Histogram; }