From aae7a21138f64e6df68417a73cd87c5ae0322642 Mon Sep 17 00:00:00 2001 From: Boris Ranto Date: Sat, 17 Feb 2018 04:45:01 +0100 Subject: [PATCH] mgr/prometheus: Expose OSD Flags Signed-off-by: Boris Ranto --- src/pybind/mgr/prometheus/module.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py index 55cc1a8c7a2..70815ed029c 100644 --- a/src/pybind/mgr/prometheus/module.py +++ b/src/pybind/mgr/prometheus/module.py @@ -53,6 +53,9 @@ DF_CLUSTER = ['total_bytes', 'total_used_bytes', 'total_objects'] DF_POOL = ['max_avail', 'bytes_used', 'raw_bytes_used', 'objects', 'dirty', 'quota_bytes', 'quota_objects', 'rd', 'rd_bytes', 'wr', 'wr_bytes'] +OSD_FLAGS = ('noup', 'nodown', 'noout', 'noin', 'nobackfill', 'norebalance', + 'norecover', 'noscrub', 'nodeep-scrub') + OSD_METADATA = ('cluster_addr', 'device_class', 'id', 'public_addr') OSD_STATUS = ['weight', 'up', 'in'] @@ -186,6 +189,13 @@ class Module(MgrModule): 'PG Total Count' ) + for flag in OSD_FLAGS: + path = 'osd_flag_{}'.format(flag) + metrics[path] = Metric( + 'untyped', + path, + 'OSD Flag {}'.format(flag) + ) for state in OSD_STATUS: path = 'osd_{}'.format(state) self.log.debug("init: creating {}".format(path)) @@ -295,6 +305,11 @@ class Module(MgrModule): def get_metadata_and_osd_status(self): osd_map = self.get('osd_map') + osd_flags = osd_map['flags'].split(',') + for flag in OSD_FLAGS: + self.metrics['osd_flag_{}'.format(flag)].set( + int(flag in osd_flags) + ) osd_devices = self.get('osd_map_crush')['devices'] for osd in osd_map['osds']: id_ = osd['osd'] -- 2.39.5