From 95d5303e11d6cba5ec4e71716af8931bcc2b9767 Mon Sep 17 00:00:00 2001 From: banuchka Date: Sat, 15 Apr 2023 21:56:05 +0100 Subject: [PATCH] mgr/prometheus: fix pool_objects_repaired and daemon_health_metrics format mgr/prometheus: fix pool_objects_repaired and daemon_health_metrics format - fix "error reading metrics for http://****:***/metrics: reading text format failed: text format parsing error in line 2010: second HELP line for metric name "ceph_pool_objects_repaired" error - rename label name "poolid" to "pool_id" like all other metrics - change type for the "daemon_health_metrics" to gauge Fixes: https://tracker.ceph.com/issues/59505 Signed-off-by: banuchka --- src/pybind/mgr/prometheus/module.py | 31 +++++++++++++++-------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/pybind/mgr/prometheus/module.py b/src/pybind/mgr/prometheus/module.py index ade068b0c3681..05f6da8b0e0ff 100644 --- a/src/pybind/mgr/prometheus/module.py +++ b/src/pybind/mgr/prometheus/module.py @@ -760,6 +760,20 @@ class Module(MgrModule): HEALTHCHECK_DETAIL ) + metrics['pool_objects_repaired'] = Metric( + 'counter', + 'pool_objects_repaired', + 'Number of objects repaired in a pool', + ('pool_id',) + ) + + metrics['daemon_health_metrics'] = Metric( + 'gauge', + 'daemon_health_metrics', + 'Health metrics for Ceph daemons', + ('type', 'ceph_daemon',) + ) + for flag in OSD_FLAGS: path = 'osd_flag_{}'.format(flag) metrics[path] = Metric( @@ -1600,14 +1614,7 @@ class Module(MgrModule): def get_pool_repaired_objects(self) -> None: dump = self.get('pg_dump') for stats in dump['pool_stats']: - path = f'pool_objects_repaired{stats["poolid"]}' - self.metrics[path] = Metric( - 'counter', - 'pool_objects_repaired', - 'Number of objects repaired in a pool Count', - ('poolid',) - ) - + path = 'pool_objects_repaired' self.metrics[path].set(stats['stat_sum']['num_objects_repaired'], labelvalues=(stats['poolid'],)) @@ -1616,13 +1623,7 @@ class Module(MgrModule): self.log.debug('metrics jeje %s' % (daemon_metrics)) for daemon_name, health_metrics in daemon_metrics.items(): for health_metric in health_metrics: - path = f'daemon_health_metrics{daemon_name}{health_metric["type"]}' - self.metrics[path] = Metric( - 'counter', - 'daemon_health_metrics', - 'Health metrics for Ceph daemons', - ('type', 'ceph_daemon',) - ) + path = 'daemon_health_metrics' self.metrics[path].set(health_metric['value'], labelvalues=( health_metric['type'], daemon_name,)) -- 2.47.3