data[key] = todict(value)
except AttributeError:
data[key] = value
-
+
return data
with open(file_name, 'r') as f:
setting = f.read().rstrip()
- return setting
+ return setting
def freadlines(file_name=None):
self.iops = int(total_io) / sample_interval
self.r_iops = int(self._reads) / sample_interval
self.w_iops = int(self._writes) / sample_interval
- self.await = float(
- self._write_ms + self._read_ms) / total_io if total_io > 0 else 0
+ self.await = (float(self._write_ms + self._read_ms) / total_io if
+ total_io > 0 else 0)
self.w_await = float(
self._write_ms) / self._writes if self._writes > 0 else 0
self.r_await = float(
"osd_id": ("osd_id", "gauge")
}
- osd_types = {"filestore": 0,
- "bluestore": 1}
+ osd_types = {"filestore": 0, "bluestore": 1}
def __init__(self, device_name, path_name=None, osd_id=None,
in_osd_type="filestore", encrypted=0):
return int(fread("/sys/block/{}/size".format(self._base_dev))) * 512
def _get_rota(self):
- return int(fread("/sys/block/{}/queue/rotational".format(self._base_dev)))
+ return int(
+ fread("/sys/block/{}/queue/rotational".format(self._base_dev)))
def _get_fssize(self):
s = statvfs("{}/whoami".format(self._path_name))
def refresh(self):
# only run the fs size update, if the _path_name is set.
if self._path_name:
- self.fs_size, self.fs_used, self.fs_percent_used = self._get_fssize()
+ self.fs_size, self.fs_used, self.fs_percent_used = \
+ self._get_fssize()
@staticmethod
def get_base_dev(dev_name):
device = filter(lambda ch: ch.isalpha(), dev_name)
return device
-
self.read_bytes_per_sec = int(read_mb * 1024 ** 2)
self.write_bytes_per_sec = int(write_mb * 1024 ** 2)
self.total_bytes_per_sec = self.read_bytes_per_sec + \
- self.write_bytes_per_sec
+ self.write_bytes_per_sec
if self._tpg_lun.alua_tg_pt_gp_name == 'ao':
self.active_path = 1
self.read_bytes_per_sec += lun.read_bytes_per_sec
self.write_bytes_per_sec += lun.write_bytes_per_sec
self.total_bytes_per_sec = self.read_bytes_per_sec + \
- self.write_bytes_per_sec
+ self.write_bytes_per_sec
def prune(self):
"""
client_stats.update(client.dump())
return {"iscsi": {
- "gw_name": {self.gateway_name: 0},
- "gw_stats": gw_stats,
- "gw_clients": client_stats
- }
- }
+ "gw_name": {self.gateway_name: 0},
+ "gw_stats": gw_stats,
+ "gw_clients": client_stats
+ }
+ }
def _get_so(self):
return [so for so in self._root.storage_objects]
self.logger.info("LIO stats took {}s".format(end - start))
return self.dump()
-
"mon_status": ("mon_status", "gauge")
}
- all_metrics = common.merge_dicts(pool_recovery_metrics, pool_client_metrics)
+ all_metrics = common.merge_dicts(
+ pool_recovery_metrics, pool_client_metrics)
all_metrics = common.merge_dicts(all_metrics, cluster_metrics)
all_metrics = common.merge_dicts(all_metrics, osd_metrics)
all_metrics = common.merge_dicts(all_metrics, mon_states)
if self._previous:
d_sum = self._current[attr].get('sum') - \
- self._previous[attr].get('sum')
+ self._previous[attr].get('sum')
d_avgcount = self._current[attr].get('avgcount') - \
- self._previous[attr].get('avgcount')
+ self._previous[attr].get('avgcount')
if d_sum == 0 or d_avgcount == 0:
val = 0
self.osd_percent_used = math.ceil((float(self.stat_bytes_used) /
self.stat_bytes) * 100)
+
class OSDs(base.BaseCollector):
- all_metrics = common.merge_dicts(common.Disk.metrics, common.IOstat.metrics)
+ all_metrics = common.merge_dicts(
+ common.Disk.metrics, common.IOstat.metrics)
def __init__(self, cluster_name, **kwargs):
base.BaseCollector.__init__(self, cluster_name, **kwargs)
# NB: osd stats are cumulative
stats = {}
- osd_socket_name = '/var/run/ceph/{}-osd.{}.asok'.format(self.cluster_name,
- osd_id)
+ osd_socket_name = '/var/run/ceph/{}-osd.{}.asok'.format(
+ self.cluster_name, osd_id)
if not os.path.exists(osd_socket_name):
# all OSD's should expose an admin socket, so if it's missing
# though, plan 'b' is the whoami file
osd_id = path_name.split('-')[-1]
if not osd_id.isdigit():
- osd_id = common.fread(os.path.join(path_name, 'whoami'))
+ osd_id = common.fread(
+ os.path.join(path_name, 'whoami'))
if osd_id not in self.osd:
osd_type = OSDs.get_osd_type(path_name)
if dev_path.startswith('/dev/mapper'):
encrypted = 1
uuid = dev_path.split('/')[-1]
- partuuid = '/dev/disk/by-partuuid/{}'.format(uuid)
+ partuuid = '/dev/disk/by-partuuid/{}'.format(
+ uuid)
dev_path = os.path.realpath(partuuid)
osd_device = dev_path.split('/')[-1]
else:
else:
encrypted = 0
- partuuid_path = os.path.join('/dev/disk/by-partuuid',
- link_tgt.split('/')[-1])
+ partuuid_path = os.path.join(
+ '/dev/disk/by-partuuid',
+ link_tgt.split('/')[-1])
jrnl_path = os.path.realpath(partuuid_path)
jrnl_dev = jrnl_path.split('/')[-1]
device.perf._current = new_stats
else:
device.perf._current = new_stats
-
+
device.perf.compute(interval)
device.refresh()
"for osd.{}".format(osd_id))
osd_stats_end = time.time()
- self.logger.debug("OSD perf dump stats collected for {} OSDs "
- "in {:.3f}s".format(len(self.osd_id_list),
- (osd_stats_end - osd_stats_start)))
+ self.logger.debug(
+ "OSD perf dump stats collected for {} OSDs in {:.3f}s".format(
+ len(self.osd_id_list), (osd_stats_end - osd_stats_start)))
@staticmethod
def _dump_devs(device_dict):