]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/prometheus: Rename node_proxy_memory_capacity_mib to node_proxy_memory_capacity_bytes
authorAfreen Misbah <afreen@ibm.com>
Thu, 25 Jun 2026 18:58:21 +0000 (00:28 +0530)
committerAfreen Misbah <afreen@ibm.com>
Thu, 2 Jul 2026 08:50:08 +0000 (14:20 +0530)
Prometheus naming conventions require base units (bytes not MiB)

Signed-off-by: Afreen Misbah <afreen@ibm.com>
src/pybind/mgr/prometheus/module.py

index 45b14fe6502e9816d43008841a02caa22d4ccfc2..06002b7b195b1123a4a9a040e92f5532d588d732 100644 (file)
@@ -145,6 +145,7 @@ NODE_PROXY_STORAGE_LABELS = ('hostname', 'device', 'model', 'protocol')
 NODE_PROXY_CPU_LABELS = ('hostname', 'cpu', 'manufacturer', 'model')
 
 NODE_PROXY_MEMORY_LABELS = ('hostname', 'dimm', 'type', 'manufacturer')
+MIB_TO_BYTES = 1048576
 
 NODE_PROXY_HEALTH_LABELS = ('hostname', 'component', 'category')
 
@@ -1026,10 +1027,10 @@ class Module(MgrModule, OrchestratorClientMixin):
             NODE_PROXY_CPU_LABELS
         )
 
-        metrics['node_proxy_memory_capacity_mib'] = Metric(
+        metrics['node_proxy_memory_capacity_bytes'] = Metric(
             'gauge',
-            'node_proxy_memory_capacity_mib',
-            'Memory capacity in MiB',
+            'node_proxy_memory_capacity_bytes',
+            'Memory capacity in bytes',
             NODE_PROXY_MEMORY_LABELS
         )
 
@@ -2102,19 +2103,29 @@ class Module(MgrModule, OrchestratorClientMixin):
 
             for sys_id, dimms in status.get('memory', {}).items():
                 for dimm_id, dimm in dimms.items():
-                    capacity = dimm.get('capacity_mi_b', 0)
+                    capacity_mib = dimm.get('capacity_mi_b', 0)
+                    capacity_bytes = capacity_mib * MIB_TO_BYTES
                     labels = (
                         host,
                         dimm_id,
                         dimm.get('memory_device_type', 'unknown'),
                         dimm.get('manufacturer', 'unknown')
                     )
-                    self.metrics['node_proxy_memory_capacity_mib'].set(capacity, labels)
+                    self.metrics['node_proxy_memory_capacity_bytes'].set(capacity_bytes, labels)
 
             for category in ['storage', 'processors', 'memory', 'power', 'fans', 'network', 'temperatures']:
                 for sys_id, components in status.get(category, {}).items():
                     for comp_id, comp in components.items():
-                        health_str = comp.get('status', {}).get('health', 'Unknown')
+                        if not isinstance(comp, dict):
+                            continue
+                        status_val = comp.get('status', {})
+                        if isinstance(status_val, dict):
+                            health_str = status_val.get('health', 'Unknown')
+                        elif isinstance(status_val, str):
+                            health_str = status_val
+                        else:
+                            health_str = 'Unknown'
+
                         if health_str == 'OK':
                             health_value = 0
                         elif health_str in ['Warning', 'Degraded']: