def generate_schedule_load_metrics()

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)