# from .predictor import get_diskfailurepredictor_path
#
# in a command thread. See https://tracker.ceph.com/issues/42764
-import scipy # noqa: ignore=F401
+import scipy # noqa: ignore=F401
from .predictor import DevSmartT, Predictor, get_diskfailurepredictor_path
health_data: Dict[str, Dict[str, Any]] = {}
predict_datas: List[DevSmartT] = []
try:
- r, outb, outs = self.remote('devicehealth', 'show_device_metrics', devid=devid, sample='')
+ r, outb, outs = self.remote(
+ 'devicehealth', 'show_device_metrics', devid=devid, sample='')
if r != 0:
self.log.error('failed to get device %s health', devid)
health_data = {}
self.log.error('invalid value received for MODULE_OPTIONS.predictor_model')
return predicted_result
try:
- obj_predictor.initialize("{}/models/{}".format(get_diskfailurepredictor_path(), self.predictor_model))
+ obj_predictor.initialize(
+ "{}/models/{}".format(get_diskfailurepredictor_path(), self.predictor_model))
except Exception as e:
self.log.error('Error initializing predictor: %s', e)
return predicted_result
roll_window_size = 6
# rolling means generator
+ dataset_size = disk_days_attrs.shape[0] - roll_window_size + 1
gen = (disk_days_attrs[i: i + roll_window_size, ...].mean(axis=0)
- for i in range(0, disk_days_attrs.shape[0] - roll_window_size + 1))
+ for i in range(dataset_size))
means = np.vstack(gen)
# rolling stds generator
gen = (disk_days_attrs[i: i + roll_window_size, ...].std(axis=0, ddof=1)
- for i in range(0, disk_days_attrs.shape[0] - roll_window_size + 1))
+ for i in range(dataset_size))
stds = np.vstack(gen)
# coefficient of variation
featurized = np.hstack((means,
stds,
cvs,
- disk_days_sa['user_capacity'][: disk_days_attrs.shape[0] - roll_window_size + 1].reshape(-1, 1)
- ))
+ disk_days_sa['user_capacity'][: dataset_size].reshape(-1, 1)))
# scale features
scaler_path = os.path.join(self.model_dirpath, manufacturer + "_scaler.pkl")