@cryptotaxi247 / netdata-1 / commits / 52bdf07f1

Improve ceph general call

Luis Eduardo committed Jan 26, 2018 at 14:38 UTC 52bdf07f176ae23ab255610d6edce62b0ad3e8d1
1 file changed +11 -15
python.d/ceph.chart.py
+11 -15
@@ -177,7 +177,7 @@ class Service(SimpleService):
177 osd_df = self._get_osd_df()
178 osd_perf = self._get_osd_perf()
179 pool_stats = self._get_osd_pool_stats()
180 - data.update(self._get_general(df, osd_perf, pool_stats))
180 + data.update(self._get_general(osd_perf, pool_stats))
181 for pool in df['pools']:
182 data.update(self._get_pool_usage(pool))
183 data.update(self._get_pool_objects(pool))
@@ -185,18 +185,19 @@ class Service(SimpleService):
185 data.update(self._get_pool_rw(pool_io))
186 for osd in osd_df['nodes']:
187 data.update(self._get_osd_usage(osd))
188 - data.update(self._get_osd_latency())
188 + for osd_apply_commit in osd_perf['osd_perf_infos']:
189 + data.update(self._get_osd_latency(osd_apply_commit))
190 return data
191 except (ValueError, AttributeError) as error:
192 self.error(error)
193 return None
194
194 - def _get_general(self, df, osd_perf, pool_stats):
195 + def _get_general(self, osd_perf, pool_stats):
196 """
197 Get ceph's general usage
198 :return: dict
199 """
199 - general_objects = 0
200 + status = self.cluster.get_cluster_stats()
201 read_bytes_sec = 0
202 write_bytes_sec = 0
203 read_op_per_sec = 0
@@ -204,8 +205,6 @@ class Service(SimpleService):
205 apply_latency = 0
206 commit_latency = 0
207
207 - for pool in df['pools']:
208 - general_objects = general_objects + pool['stats']['objects']
208 for pool_rw_io_b in pool_stats:
209 read_bytes_sec = read_bytes_sec + pool_rw_io_b['client_io_rate'].get('read_bytes_sec', 0)
210 write_bytes_sec = write_bytes_sec + pool_rw_io_b['client_io_rate'].get('write_bytes_sec', 0)
@@ -215,9 +214,9 @@ class Service(SimpleService):
214 apply_latency = apply_latency + perf['perf_stats']['apply_latency_ms']
215 commit_latency = commit_latency + perf['perf_stats']['commit_latency_ms']
216
218 - return {'general_usage': df['stats']['total_used_bytes'],
219 - 'general_available': df['stats']['total_avail_bytes'],
220 - 'general_objects': general_objects,
217 + return {'general_usage': int(status['kb_used']),
218 + 'general_available': int(status['kb_avail']),
219 + 'general_objects': int(status['num_objects']),
220 'general_read_bytes': read_bytes_sec,
221 'general_write_bytes': write_bytes_sec,
222 'general_read_operations': read_op_per_sec,
@@ -258,16 +257,13 @@ class Service(SimpleService):
257 """
258 return {osd['name']: float(osd['kb_used'])}
259
261 - def _get_osd_latency(self):
260 + def _get_osd_latency(self, osd):
261 """
262 Get ceph osd apply and commit latency
263 :return: A osd dict with osd name's key with both apply and commit latency values
264 """
266 - osd_latency = {}
267 - for osd in self._get_osd_perf()['osd_perf_infos']:
268 - osd_latency.update({'apply_latency_osd.{0}'.format(osd['id']): osd['perf_stats']['apply_latency_ms'],
269 - 'commit_latency_osd.{0}'.format(osd['id']): osd['perf_stats']['commit_latency_ms']})
270 - return osd_latency
265 + return {'apply_latency_osd.{0}'.format(osd['id']): osd['perf_stats']['apply_latency_ms'],
266 + 'commit_latency_osd.{0}'.format(osd['id']): osd['perf_stats']['commit_latency_ms']}
267
268 def _get_df(self):
269 """