X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fpybind%2Fmgr%2Fdashboard%2Frbd_iscsi.py;h=6f5e75ed1804a80110069a99d077a05ffc9bdcc7;hb=b32b81446b3b05102be0267e79203f59329c1d97;hp=d0de918dab1130f11404b6dd209054dd69994b83;hpb=215dd7151453fae88e6f968c975b6ce309d42dcf;p=ceph.git diff --git a/ceph/src/pybind/mgr/dashboard/rbd_iscsi.py b/ceph/src/pybind/mgr/dashboard/rbd_iscsi.py index d0de918da..6f5e75ed1 100644 --- a/ceph/src/pybind/mgr/dashboard/rbd_iscsi.py +++ b/ceph/src/pybind/mgr/dashboard/rbd_iscsi.py @@ -27,20 +27,41 @@ class DaemonsAndImages(RemoteViewCache): } daemons[server['hostname']] = daemon - image_id = service['id'].split(':')[-1] - image = images.get(image_id) + service_id = service['id'] + device_id = service_id.split(':')[-1] + image = images.get(device_id) if image is None: image = { - 'id': image_id, + 'device_id': device_id, 'pool_name': metadata['pool_name'], 'name': metadata['image_name'], + 'id': metadata.get('image_id', None), 'optimized_paths': [], 'non_optimized_paths': [] } - images[image_id] = image + images[device_id] = image if status.get('lock_owner', 'false') == 'true': daemon['optimized_paths'] += 1 image['optimized_paths'].append(server['hostname']) + + perf_key_prefix = "librbd-{id}-{pool}-{name}.".format( + id=metadata.get('image_id', ''), + pool=metadata['pool_name'], + name=metadata['image_name']) + perf_key = "{}lock_acquired_time".format(perf_key_prefix) + lock_acquired_time = (self._module.get_counter( + 'tcmu-runner', service_id, perf_key)[perf_key] or + [[0,0]])[-1][1] / 1000000000 + if lock_acquired_time > image.get('optimized_since', None): + image['optimized_since'] = lock_acquired_time + image['stats'] = {} + image['stats_history'] = {} + for s in ['rd', 'wr', 'rd_bytes', 'wr_bytes']: + perf_key = "{}{}".format(perf_key_prefix, s) + image['stats'][s] = self._module.get_rate( + 'tcmu-runner', service_id, perf_key) + image['stats_history'][s] = self._module.get_counter( + 'tcmu-runner', service_id, perf_key)[perf_key] else: daemon['non_optimized_paths'] += 1 image['non_optimized_paths'].append(server['hostname'])