Add VIM configuration option to model the label to identify VM ids in Prometheus... 32/15132/1 v14.0
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Wed, 26 Mar 2025 16:04:13 +0000 (17:04 +0100)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Thu, 27 Mar 2025 08:47:55 +0000 (09:47 +0100)
Change-Id: Iffcb7050f833c9ac2b227528dce27bebd02b36bc
Signed-off-by: garciadeblas <gerardo.garciadeblas@telefonica.com>
src/osm_ngsa/osm_mon/vim_connectors/openstack.py

index b1ec84a..aabf6b7 100644 (file)
@@ -291,6 +291,9 @@ class PrometheusTSDBBackend(OpenstackBackend):
     def __init__(self, vim_account: dict):
         self.map = self._build_map(vim_account)
         self.cred = vim_account["prometheus-config"].get("prometheus-cred")
+        self.resource_id_label = vim_account["prometheus-config"].get(
+            "resource-id-label", "resource_id"
+        )
         self.client = self._build_prometheus_client(
             vim_account["prometheus-config"]["prometheus-url"]
         )
@@ -325,8 +328,10 @@ class PrometheusTSDBBackend(OpenstackBackend):
         if resource_id:
             log.info(f"Getting the metric for the resource_id: {resource_id}")
             metric = next(
-                # TODO: The label to identify the metric should be standard or read from VIM config
-                filter(lambda x: resource_id in x["metric"]["resource_id"], metrics)
+                filter(
+                    lambda x: resource_id in x["metric"][self.resource_id_label],
+                    metrics,
+                )
             )
             log.debug(f"Resource metric {metric_name} for {resource_id}: {metric}")
             return metric