Я пытаюсь подсчитать среднее время, в течение которого стручок находится в состоянии ожидания в графане с прометеем. С помощью этого запроса я могу сгенерировать график, чтобы получить количество модулей в состоянии ожидания с течением времени
sum(kube_pod_status_phase{phase="Pending"})
Однако мне бы очень хотелось получить значение среднего времени, в течение которого капсулы находятся в этом состоянии за последние X часов. Как я могу это сделать?
2 ответа
PromQL предоставляет функции агрегирования с течением времени.
Вы указываете диапазон времени в выражении ; за X предыдущих часов это будет:
avg_over_time(kube_pod_status_phase{phase="Pending"}[Xh])
Метрика kube_pod_status_phase{phase="Pending"}
даст вам только двоичные значения, то есть 0/1. 1, если модуль находится в состоянии ожидания, в противном случае. Кроме того, данные обновляются каждые 30 секунд. Таким образом, чтобы узнать общее время ожидания в последние X часов, вы можете сделать что-то вроде этого.
sum_over_time(kube_pod_status_phase{phase="Running"}[Xh]) * X * 30
Для лучшей наглядности вы можете использовать таблицу в графане.
Похожие вопросы
Новые вопросы
kubernetes
ВОПРОСЫ КУБЕРНЕТА ДОЛЖНЫ БЫТЬ ОТНОШЕНЫ К РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. Настройка и развертывание здесь не по теме. Хорошее эмпирическое правило: если это происходит за пределами группы, это, вероятно, не по теме. Если речь идет о коде, работающем внутри модуля, то, вероятно, все в порядке.