in src/hpcadvisor/batch_handler.py [0:0]
def _get_average_value(metrics_data):
values = []
if metrics_data.value is None:
return None
for item in metrics_data.value:
for timeserie in item.timeseries:
for data in timeserie.data:
if data.average is not None:
values.append(data.average)
log.debug(f"metric values={values}")
numbers = np.array(values)
n = len(numbers)
numbers.sort()
if n == 0:
log.warn("zero values coming from collected metric data")
return float("nan")
else:
cut_off_low = numbers[int(0.1 * n)]
cut_off_high = numbers[int(0.9 * n)]
filtered_numbers = [x for x in numbers if x >= cut_off_low and x <= cut_off_high]
return np.average(filtered_numbers)