Ceph: Added OSD size collection (#8649)
elelayan committed
May 28, 2020 at 16:18 UTC
d11ec6f978e357d539a6ab06c97555ed5d25c04b
2 files changed
+21
collectors/python.d.plugin/ceph/ceph.chart.py
+17
@@ -31,6 +31,7 @@ ORDER = [
31
'pool_read_operations',
32
'pool_write_operations',
33
'osd_usage',
34
+ 'osd_size',
35
'osd_apply_latency',
36
'osd_commit_latency'
37
]
@@ -101,6 +102,10 @@ CHARTS = {
102
'options': [None, 'Ceph OSDs', 'KiB', 'osd', 'ceph.osd_usage', 'line'],
103
'lines': []
104
},
105
+ 'osd_size': {
106
+ 'options': [None, 'Ceph OSDs size', 'KiB', 'osd', 'ceph.osd_size', 'line'],
107
+ 'lines': []
108
+ },
109
'osd_apply_latency': {
110
'options': [None, 'Ceph OSDs apply latency', 'milliseconds', 'osd', 'ceph.apply_latency', 'line'],
111
'lines': []
@@ -189,6 +194,9 @@ class Service(SimpleService):
194
self.definitions['osd_usage']['lines'].append([osd['name'],
195
osd['name'],
196
'absolute'])
197
+ self.definitions['osd_size']['lines'].append(['size_{0}'.format(osd['name']),
198
+ osd['name'],
199
+ 'absolute'])
200
self.definitions['osd_apply_latency']['lines'].append(['apply_latency_{0}'.format(osd['name']),
201
osd['name'],
202
'absolute'])
@@ -217,6 +225,7 @@ class Service(SimpleService):
225
data.update(self._get_pool_rw(pool_io))
226
for osd in osd_df['nodes']:
227
data.update(self._get_osd_usage(osd))
228
+ data.update(self._get_osd_size(osd))
229
for osd_apply_commit in osd_perf_infos:
230
data.update(self._get_osd_latency(osd_apply_commit))
231
return data
@@ -295,6 +304,14 @@ class Service(SimpleService):
304
"""
305
return {osd['name']: float(osd['kb_used'])}
306
307
+ @staticmethod
308
+ def _get_osd_size(osd):
309
+ """
310
+ Process raw data into osd dict information to get osd size (kb)
311
+ :return: A osd dict with osd name's key and size bytes' value
312
+ """
313
+ return {'size_{0}'.format(osd['name']): float(osd['kb'])}
314
+
315
@staticmethod
316
def _get_osd_latency(osd):
317
"""
web/gui/dashboard_info.js
+4
@@ -1877,6 +1877,10 @@ netdataDashboard.context = {
1877
info: 'The usage space in each OSD.'
1878
},
1879
1880
+ 'ceph.osd_size': {
1881
+ info: "Each OSD's size"
1882
+ },
1883
+
1884
'ceph.apply_latency': {
1885
info: 'Time taken to flush an update in each OSD.'
1886
},