DISK_OCCUPATION = ('instance', 'device', 'ceph_daemon')
+NUM_OBJECTS = ['degraded', 'misplaced', 'unfound']
+
class Metrics(object):
def __init__(self):
'DF pool {}'.format(state),
('pool_id',)
)
+ for state in NUM_OBJECTS:
+ path = 'num_objects_{}'.format(state)
+ metrics[path] = Metric(
+ 'gauge',
+ path,
+ 'Number of {} objects'.format(state),
+ )
return metrics
(service_id, hostname, version)
)
+ def get_num_objects(self):
+ pg_sum = self.get('pg_summary')['pg_stats_sum']['stat_sum']
+ for obj in NUM_OBJECTS:
+ stat = 'num_objects_{}'.format(obj)
+ self.metrics.set(stat, pg_sum[stat])
+
def collect(self):
self.get_health()
self.get_df()
self.get_quorum_status()
self.get_metadata_and_osd_status()
self.get_pg_status()
+ self.get_num_objects()
for daemon, counters in self.get_all_perf_counters().items():
for path, counter_info in counters.items():