Какие плюсы и минусы у Prometheus как системы мониторинга?

«Какие плюсы и минусы у Prometheus как системы мониторинга?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Простая модель данных: Метрика — это временной ряд с набором лейблов. Это интуитивно понятно и мощно.
  • Мощный язык запросов PromQL: Позволяет выполнять сложную агрегацию, прогнозирование и создавать производные метрики прямо на лету.
  • Pull-модель сбора: Централизованное управление таргетами через service discovery (Kubernetes, Consul). Легко увидеть, что цель недоступна для сбора метрик.
  • Надежность и автономность: Один сервер — это полноценное решение. Не зависит от внешних систем для сбора и хранения.
  • Огромная экосистема: Официальные и community-экспортеры практически для всего (Node Exporter, cAdvisor, Blackbox Exporter).

Минусы:

  • Хранение «на диске»: Нет встроенного кластерингованного долгосрочного хранения. Для масштабирования и долгосрочного хранения нужны надстройки (Thanos, Cortex, VictoriaMetrics).
  • Нет поддержки высокочастотных метрик или логов: Оптимизирован под метрики с периодичностью сбора в секунды/минуты. Не подходит для трейсинга или полноценного логирования.
  • Ненадежность при потере узла: Потеря данных за период между последним scrape и падением сервера.

Пример типичного правила алертинга в Prometheus:

# prometheus_rules.yml
- alert: HighRequestLatency
  expr: job:request_latency_seconds:mean5m{job="myapp"} > 0.5
  for: 10m
  labels:
    severity: page
  annotations:
    summary: "High latency detected in {{ $labels.job }}"