From: Konstantin Shalygin Date: Wed, 17 Jan 2018 06:40:05 +0000 (+0700) Subject: mgr: prometheus: added osd commit/apply latency metrics (#22718). X-Git-Tag: v13.0.2~461^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F19980%2Fhead;p=ceph.git mgr: prometheus: added osd commit/apply latency metrics (#22718). Signed-off-by: Konstantin Shalygin --- diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py index 82bb65cda67f..b7e5031d8ec7 100644 --- a/src/pybind/mgr/prometheus/module.py +++ b/src/pybind/mgr/prometheus/module.py @@ -56,6 +56,8 @@ OSD_METADATA = ('cluster_addr', 'device_class', 'id', 'public_addr') OSD_STATUS = ['weight', 'up', 'in'] +OSD_STATS = ['apply_latency_ms', 'commit_latency_ms'] + POOL_METADATA = ('pool_id', 'name') DISK_OCCUPATION = ('instance', 'device', 'ceph_daemon') @@ -202,6 +204,15 @@ class Module(MgrModule): 'OSD status {}'.format(state), ('ceph_daemon',) ) + for stat in OSD_STATS: + path = 'osd_{}'.format(stat) + self.log.debug("init: creating {}".format(path)) + metrics[path] = Metric( + 'gauge', + path, + 'OSD stat {}'.format(stat), + ('ceph_daemon',) + ) for state in PG_STATES: path = 'pg_{}'.format(state) self.log.debug("init: creating {}".format(path)) @@ -276,6 +287,16 @@ class Module(MgrModule): except KeyError: self.log.warn("skipping pg in unknown state {}".format(state)) + def get_osd_stats(self): + osd_stats = self.get('osd_stats') + for osd in osd_stats['osd_stats']: + id_ = osd['osd'] + for stat in OSD_STATS: + status = osd['perf_stat'][stat] + self.metrics['osd_{}'.format(stat)].set( + status, + ('osd.{}'.format(id_),)) + def get_metadata_and_osd_status(self): osd_map = self.get('osd_map') osd_devices = self.get('osd_map_crush')['devices'] @@ -325,6 +346,7 @@ class Module(MgrModule): def collect(self): self.get_health() self.get_df() + self.get_osd_stats() self.get_quorum_status() self.get_metadata_and_osd_status() self.get_pg_status()