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
)