Три ошибки с метриками Kubernetes в PromQL, которые проще не допускать, чем исправлять
Запрос в PromQL может выглядеть просто, но скрывать подводные камни. Например, он должен возвращать сведения об использовании памяти пода, но выдает ошибку.
container_memory_working_set_bytes{pod="agency-dashboard-api-89b7f557c-xd4l7"}
Вот какие ошибки есть в этом запросе.
Дубликаты временных рядов. Если в запросе не учтены все метки, Prometheus может вернуть несколько значений вместо одного. Например, один и тот же под может быть измерен разными заданиями мониторинга. Решение — уточнять фильтрацию, добавляя ключевые метки.
Неверная агрегация. Попытка исправить дубли суммированием и усреднением (sum() by (pod) / 2) не решает проблему, а запутывает данные. Прежде чем агрегировать, стоит разобраться, почему появились дубликаты.
Pause-контейнеры. В Kubernetes у каждого пода есть вспомогательный контейнер Pause. Если запрос не фильтрует его, метрики будут включать лишние значения. Добавляем условие container!="" — и дубликаты исчезают.
Мы разобрали ошибки на конкретном примере, но эти же принципы можно использовать и в других запросах.
#DevOps #Kubernetes
@digitize_IT — мнения и управленческий опыт ИТ-лидеров
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram