Как устроен Prometheus
Вопрос
Интервьюер: «Расскажите, как устроен Prometheus и как вы его разворачивали».
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Pull-модель: опрос /metrics, service discovery, метрика up
Модель данных: метрика плюс метки, типы метрик
Хранение: локальная TSDB, блоки, ретеншн
Правила: recording и alerting, Alertmanager отдельно
Ограничения: одиночный узел, долгое хранение и HA через Thanos, Mimir или VictoriaMetrics
В Kubernetes: Prometheus Operator, ServiceMonitor, kube-prometheus-stack
Что могут спросить следом
- Что будет, если Prometheus упадёт на 10 минут?
- Как вы боролись с кардинальностью?
Разбор
Образцовый ответ: «Prometheus сам опрашивает цели по HTTP, находит их через service discovery, в Kubernetes через API. Каждый ряд это имя плюс метки, типы counter, gauge, histogram и summary. Данные лежат в локальной TSDB: голова в памяти с WAL, каждые два часа блок на диск, ретеншн у нас был 15 дней. Recording rules заранее считали тяжёлые агрегаты для дашбордов, alerting rules отправляли алерты в Alertmanager, он группировал и роутил в Telegram и PagerDuty-подобную систему. Разворачивали kube-prometheus-stack с оператором, команды описывали свои ServiceMonitor. Два одинаковых Prometheus для HA и remote_write в VictoriaMetrics для хранения на год. Если один Prometheus упадёт, второй продолжит, а дыра в его данных закроется дедупликацией в хранилище».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.