From 0095e6a1ba0fb9473cfb60b6977498f2c1159079 Mon Sep 17 00:00:00 2001 From: Jan Fajerski Date: Tue, 20 Feb 2018 11:06:19 +0100 Subject: [PATCH] pybind/mgr/prometheus: add fs and mds metadata metrics Signed-off-by: Jan Fajerski --- src/pybind/mgr/prometheus/module.py | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py index ba1df483017dd..576a806d2928a 100644 --- a/src/pybind/mgr/prometheus/module.py +++ b/src/pybind/mgr/prometheus/module.py @@ -56,6 +56,10 @@ DF_POOL = ['max_avail', 'bytes_used', 'raw_bytes_used', 'objects', 'dirty', OSD_FLAGS = ('noup', 'nodown', 'noout', 'noin', 'nobackfill', 'norebalance', 'norecover', 'noscrub', 'nodeep-scrub') +FS_METADATA = ('data_pools', 'id', 'metadata_pool', 'name') + +MDS_METADATA = ('id', 'fs', 'public_addr', 'rank') + MON_METADATA = ('id', 'public_addr', 'rank') OSD_METADATA = ('cluster_addr', 'device_class', 'id', 'public_addr') @@ -119,6 +123,18 @@ class Metrics(object): 'Monitors in quorum', ('ceph_daemon',) ) + metrics['fs_metadata'] = Metric( + 'untyped', + 'fs_metadata', + 'FS Metadata', + FS_METADATA + ) + metrics['mds_metadata'] = Metric( + 'untyped', + 'mds_metadata', + 'MDS Metadata', + MDS_METADATA + ) metrics['mon_metadata'] = Metric( 'untyped', 'mon_metadata', @@ -308,6 +324,21 @@ class Module(MgrModule): pool['stats'][stat], (pool['id'],)) + def get_fs(self): + fs_map = self.get('fs_map') + active_daemons = [] + for fs in fs_map['filesystems']: + # collect fs metadata + data_pools = ",".join([str(pool) for pool in fs['mdsmap']['data_pools']]) + self.metrics.append('fs_metadata', 1, + (data_pools, + fs['id'], + fs['mdsmap']['metadata_pool'], + fs['mdsmap']['fs_name'])) + for gid, daemon in fs['mdsmap']['info'].items(): + self.metrics.append('mds_metadata', 1, + (daemon['name'], fs['id'], daemon['addr'], daemon['rank'])) + def get_quorum_status(self): mon_status = json.loads(self.get('mon_status')['json']) for mon in mon_status['monmap']['mons']: @@ -413,6 +444,7 @@ class Module(MgrModule): def collect(self): self.get_health() self.get_df() + self.get_fs() self.get_osd_stats() self.get_quorum_status() self.get_metadata_and_osd_status() -- 2.39.5