Add General Apply/Commit lantecy
Luis Eduardo committed
Jan 26, 2018 at 10:27 UTC
091be2c10b0fd2625f71c8042013ec58479f0700
2 files changed
+27
-6
python.d/ceph.chart.py
+23
-6
@@ -17,8 +17,8 @@ priority = 60000
17
retries = 60
18
19
ORDER = ['general_usage', 'general_objects', 'general_bytes', 'general_operations',
20
- 'pool_usage', 'pool_objects', 'pool_write_iops', 'pool_read_iops',
21
- 'osd_usage', 'osd_apply_latency', 'osd_commit_latency']
20
+ 'general_latency', 'pool_usage', 'pool_objects', 'pool_read_iops',
21
+ 'pool_write_iops', 'osd_usage', 'osd_apply_latency', 'osd_commit_latency']
22
23
CHARTS = {
24
'general_usage': {
@@ -50,6 +50,14 @@ CHARTS = {
50
['general_write_operations', 'write', 'absolute', -1]
51
]
52
},
53
+ 'general_latency': {
54
+ 'options': [None, 'Ceph General Apply/Commit latency', 'milliseconds', 'general', 'ceph.general_latency',
55
+ 'area'],
56
+ 'lines': [
57
+ ['general_apply_latency', 'apply', 'absolute'],
58
+ ['general_commit_latency', 'commit', 'absolute']
59
+ ]
60
+ },
61
'pool_usage': {
62
'options': [None, 'Ceph Pools', 'KB', 'pool', 'ceph.pool_usage', 'line'],
63
'lines': []
@@ -124,12 +132,12 @@ class Service(SimpleService):
132
self.definitions['pool_objects']['lines'].append(["obj_{0}".format(pool['name']),
133
pool['name'],
134
'absolute'])
127
- self.definitions['pool_write_iops']['lines'].append(['write_{0}'.format(pool['name']),
128
- pool['name'],
129
- 'incremental'])
135
self.definitions['pool_read_iops']['lines'].append(['read_{0}'.format(pool['name']),
136
pool['name'],
137
'incremental'])
138
+ self.definitions['pool_write_iops']['lines'].append(['write_{0}'.format(pool['name']),
139
+ pool['name'],
140
+ 'incremental'])
141
142
for osd in sorted(self._get_osd_df()['nodes']):
143
self.definitions['osd_usage']['lines'].append([osd['name'],
@@ -169,11 +177,15 @@ class Service(SimpleService):
177
"""
178
df = self._get_df()
179
pool_stats = self._get_osd_pool_stats()
180
+ osd_perf = self._get_osd_perf()
181
+
182
general_objects = 0
183
read_bytes_sec = 0
184
write_bytes_sec = 0
185
read_op_per_sec = 0
186
write_op_per_sec = 0
187
+ apply_latency = 0
188
+ commit_latency = 0
189
190
for pool in df['pools']:
191
general_objects = general_objects + pool['stats']['objects']
@@ -182,6 +194,9 @@ class Service(SimpleService):
194
write_bytes_sec = write_bytes_sec + pool_rw_io_b['client_io_rate'].get('write_bytes_sec', 0)
195
read_op_per_sec = read_op_per_sec + pool_rw_io_b['client_io_rate'].get('read_op_per_sec', 0)
196
write_op_per_sec = write_op_per_sec + pool_rw_io_b['client_io_rate'].get('write_op_per_sec', 0)
197
+ for perf in osd_perf['osd_perf_infos']:
198
+ apply_latency = apply_latency + perf['perf_stats']['apply_latency_ms']
199
+ commit_latency = commit_latency + perf['perf_stats']['commit_latency_ms']
200
201
return {'general_usage': df['stats']['total_used_bytes'],
202
'general_available': df['stats']['total_avail_bytes'],
@@ -189,7 +204,9 @@ class Service(SimpleService):
204
'general_read_bytes': read_bytes_sec,
205
'general_write_bytes': write_bytes_sec,
206
'general_read_operations': read_op_per_sec,
192
- 'general_write_operations': write_op_per_sec
207
+ 'general_write_operations': write_op_per_sec,
208
+ 'general_apply_latency': apply_latency,
209
+ 'general_commit_latency': commit_latency
210
}
211
212
def _get_pool_usage(self, pool):
web/dashboard_info.js
+4
@@ -1334,6 +1334,10 @@ netdataDashboard.context = {
1334
info: 'Shows cluster general read/write operations per second.'
1335
},
1336
1337
+ 'ceph.general_latency': {
1338
+ info: 'Shows cluster general apply/commit latency.'
1339
+ },
1340
+
1341
'ceph.pool_usage': {
1342
info: 'Shows info about pool usage.'
1343
},