Я пытаюсь подсчитать среднее время, в течение которого стручок находится в состоянии ожидания в графане с прометеем. С помощью этого запроса я могу сгенерировать график, чтобы получить количество модулей в состоянии ожидания с течением времени

sum(kube_pod_status_phase{phase="Pending"})

Однако мне бы очень хотелось получить значение среднего времени, в течение которого капсулы находятся в этом состоянии за последние X часов. Как я могу это сделать?

3
Bruno_Ferreira 16 Авг 2019 в 02:09

2 ответа

Лучший ответ

PromQL предоставляет функции агрегирования с течением времени.

Вы указываете диапазон времени в выражении ; за X предыдущих часов это будет:

avg_over_time(kube_pod_status_phase{phase="Pending"}[Xh])
1
Michael Doubez 16 Авг 2019 в 17:13

Метрика kube_pod_status_phase{phase="Pending"} даст вам только двоичные значения, то есть 0/1. 1, если модуль находится в состоянии ожидания, в противном случае. Кроме того, данные обновляются каждые 30 секунд. Таким образом, чтобы узнать общее время ожидания в последние X часов, вы можете сделать что-то вроде этого.

sum_over_time(kube_pod_status_phase{phase="Running"}[Xh]) * X * 30

Для лучшей наглядности вы можете использовать таблицу в графане.

0
Palash Jain 26 Ноя 2019 в 17:45