def get_time_ranges()

in docker/services/metrics_service.py [0:0]


    def get_time_ranges(self, df, freq='10Min'):
        if not isinstance(df, pd.DataFrame) or len(df) == 0:
            return []
        df = df.asfreq(freq)
        periods = []
        period_start = None
        period_end = None
        for row in df.itertuples():
            cpu_load = getattr(row, COLUMN_CPU_LOAD)
            if period_start and period_end and np.isnan(cpu_load):
                periods.append((period_start, period_end))
                period_start = None
                period_end = None
            elif not period_start and not np.isnan(cpu_load):
                period_start = row.Index.time()
            elif period_start and not np.isnan(cpu_load):
                period_end = row.Index.time()
        if period_start and period_end:
            periods.append((period_start, period_end))

        return self.build_df_from_periods(
            df=df,
            periods=periods
        )