From 8ec35643c7dd327f2a23bf623a058119e484be39 Mon Sep 17 00:00:00 2001 From: elonj Date: Wed, 6 Jul 2022 16:06:38 -0400 Subject: [PATCH] if non found, metrics should register and retrun created Signed-off-by: elonj --- plugins/catalog-backend/src/util/metrics.ts | 38 ++++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) 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; }