in docker/services/mocked_data_service.py [0:0]
def generate_schedule_load_metrics(self, config, metric_file_path):
period_days = config.get(TAG_PERIOD_DAYS)
length = POINTS_IN_DAY * period_days
instance_id_series, instance_type_series, timestamp_series, \
shape_series, shape_size_koef_series = self.generate_common_columns(
metric_file_path=metric_file_path, length=length
)
deviation = config.get(TAG_STD)
cpu_avg = config.get(TAG_CPU)
memory_avg = config.get(TAG_MEMORY)
avg_iops_avg = config.get(TAG_AVG_DISK_IOPS)
max_iops_avg = config.get(TAG_MAX_DISK_IOPS)
net_output_avg = config.get(TAG_NET_OUTPUT_LOAD)
cron_start = config.get(TAG_CRON_START)
cron_stop = config.get(TAG_CRON_STOP)
cron_start_list = self._cron_to_list(cron_start)
cron_stop_list = self._cron_to_list(cron_stop)
if not cron_start_list or not cron_stop_list:
_LOG.error(f'Some of the specified cron strings are not valid')
return
work_days, work_hours = self._get_work_days_hours(
cron_start_list=cron_start_list, cron_stop_list=cron_stop_list)
cpu_load_series = generate_scheduled_metric_series(
distribution='normal',
timestamp_series=timestamp_series,
work_days=work_days,
work_hours=work_hours,
work_kwargs=dict(loc=cpu_avg, scale=deviation),
idle_kwargs=dict(loc=3, scale=deviation)
)
memory_load_series = generate_scheduled_metric_series(
distribution='normal',
timestamp_series=timestamp_series,
work_days=work_days,
work_hours=work_hours,
work_kwargs=dict(loc=memory_avg, scale=deviation),
idle_kwargs=dict(loc=3, scale=deviation)
)
net_output_load_series = generate_constant_metric_series(
distribution='normal',
loc=net_output_avg,
scale=deviation,
size=length
)
avg_iops_series = generate_constant_metric_series(
distribution='normal',
loc=avg_iops_avg,
scale=deviation,
size=length
)
max_iops_series = generate_constant_metric_series(
distribution='normal',
loc=max_iops_avg,
scale=deviation,
size=length
)
df_data = {
'instance_id': instance_id_series,
'instance_type': instance_type_series,
'shape': shape_series,
'shape_size_koef': shape_size_koef_series,
'timestamp': timestamp_series,
'cpu_load': cpu_load_series,
'memory_load': memory_load_series,
'net_output_load': net_output_load_series,
'avg_disk_iops': avg_iops_series,
'max_disk_iops': max_iops_series,
}
df = pd.DataFrame(df_data)
df.to_csv(metric_file_path, sep=',', index=False)