Запрос Prometheus для усреднения по времени по заданной метке c - PullRequest
0 голосов
/ 06 февраля 2020

Мне нужно запросить метрику c и узнать среднее значение метри c за период 24 часа. Но использование avg_over_time непосредственно в metri c не сработает. Существует специальная метка c ipaddr. Среднее значение должно быть сгруппировано по каждому ipaddr. Теперь группировка не разрешена в avg_over_time. В таком случае, как я могу узнать среднее значение metri c за 24 часа для каждого ipaddr?

metri c и его значения похожи на это

K_utilization{ifName="Ds12:1/0/30",ipaddr="10.1.109.54",node="worker"}  3.5
K_utilization{ifName="Ds65:1/0/4",ipaddr="10.1.5.50",node="worker"} 13.2
K_utilization{ifName="Ds26:1/0/8",ipaddr="10.1.123.58",node="worker"}   3.2
K_utilization{ifName="Ds69:0/0/10",ipaddr="10.1.115.55",node="worker"}  6.2
K_utilization{ifName="Ds71:0/0/21",ipaddr="10.1.25.51",node="worker"}   13.5

1 Ответ

0 голосов
/ 06 февраля 2020

Функция avg_over_time ожидает вектор диапазона, что означает, что вы можете (если я правильно понял) использовать подзапрос, например:

avg_over_time(K_utilization[1h:5m])

Это будет выглядеть для K_utilization metri c для последний 1 ч с разрешением 5 м, результат должен содержать все метки из метри c.

Вы также можете объединить метри c в подзапросе по метке ipaddr с sum подзапрос, а затем вычислите avg_over_time:

avg_over_time(sum by (ipaddr) (K_utilization)[1h:5m])

Подробнее о подзапросах Prometheus ?

...