]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
pybind/mgr/prometheus: export rbd-mirror metadata
authorMykola Golub <mgolub@suse.com>
Wed, 9 Jan 2019 09:27:59 +0000 (09:27 +0000)
committerMykola Golub <mgolub@suse.com>
Thu, 10 Jan 2019 10:36:45 +0000 (10:36 +0000)
Signed-off-by: Mykola Golub <mgolub@suse.com>
src/pybind/mgr/prometheus/module.py

index ef6c08492db4f598abd5ea798c406e74b8f4f219..50eb1debf873762fe5738c512507b24f75a38605 100644 (file)
@@ -73,6 +73,9 @@ POOL_METADATA = ('pool_id', 'name')
 
 RGW_METADATA = ('ceph_daemon', 'hostname', 'ceph_version')
 
+RBD_MIRROR_METADATA = ('ceph_daemon', 'id', 'instance_id', 'hostname',
+                       'ceph_version')
+
 DISK_OCCUPATION = ('ceph_daemon', 'device', 'db_device', 'wal_device', 'instance')
 
 NUM_OBJECTS = ['degraded', 'misplaced', 'unfound']
@@ -253,6 +256,13 @@ class Module(MgrModule):
             RGW_METADATA
         )
 
+        metrics['rbd_mirror_metadata'] = Metric(
+            'untyped',
+            'rbd_mirror_metadata',
+            'RBD Mirror Metadata',
+            RBD_MIRROR_METADATA
+        )
+
         metrics['pg_total'] = Metric(
             'gauge',
             'pg_total',
@@ -519,16 +529,24 @@ class Module(MgrModule):
         for pool in osd_map['pools']:
             self.metrics['pool_metadata'].set(1, (pool['pool'], pool['pool_name']))
 
-        # Populate rgw_metadata
+        # Populate other servers metadata
         for key, value in servers.items():
             service_id, service_type = key
-            if service_type != 'rgw':
-                continue
-            hostname, version = value
-            self.metrics['rgw_metadata'].set(
-                1,
-                ('{}.{}'.format(service_type, service_id), hostname, version)
-            )
+            if service_type == 'rgw':
+                hostname, version = value
+                self.metrics['rgw_metadata'].set(
+                    1,
+                    ('{}.{}'.format(service_type, service_id), hostname, version)
+                )
+            elif service_type == 'rbd-mirror':
+                mirror_metadata = self.get_metadata('rbd-mirror', service_id)
+                if mirror_metadata is None:
+                    continue
+                mirror_metadata['ceph_daemon'] = '{}.{}'.format(service_type,
+                                                                service_id)
+                self.metrics['rbd_mirror_metadata'].set(
+                    1, (mirror_metadata.get(k, '') for k in RBD_MIRROR_METADATA)
+                )
 
     def get_num_objects(self):
         pg_sum = self.get('pg_summary')['pg_stats_sum']['stat_sum']