X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcollector%2Fbackends%2Fprometheus.py;h=fbe6d36b7ebbe29355217f35753958e02d58fe06;hb=456d0f323cfcb5fe6b8cad5a6c3e6633875633cd;hp=1bc3ff466dce27c513725b4f0c552c7aaa53b51b;hpb=51f4486b06781541ee15ea332261247ed3e930f6;p=osm%2FMON.git diff --git a/osm_mon/collector/backends/prometheus.py b/osm_mon/collector/backends/prometheus.py index 1bc3ff4..fbe6d36 100644 --- a/osm_mon/collector/backends/prometheus.py +++ b/osm_mon/collector/backends/prometheus.py @@ -43,16 +43,16 @@ class PrometheusBackend(BaseBackend): def handle(self, metrics: List[Metric]): log.debug('handle') log.debug('metrics: %s', metrics) - prometheus_metrics = [] + prometheus_metrics = {} for metric in metrics: - prometheus_metric = GaugeMetricFamily( - OSM_METRIC_PREFIX + metric.name, - 'OSM metric', - labels=['ns_id', 'vnf_member_index', 'vdu_name'] - ) - prometheus_metric.add_metric([metric.nsr_id, metric.vnf_member_index, metric.vdur_name], metric.value) - prometheus_metrics.append(prometheus_metric) - self.custom_collector.metrics = prometheus_metrics + if metric.name not in prometheus_metrics: + prometheus_metrics[metric.name] = GaugeMetricFamily( + OSM_METRIC_PREFIX + metric.name, + 'OSM metric', + labels=list(metric.tags.keys()) + ) + prometheus_metrics[metric.name].add_metric(list(metric.tags.values()), metric.value) + self.custom_collector.metrics = prometheus_metrics.values() def _start_exporter(self, port): log.debug('_start_exporter')