advanced

Основы Prometheus

Понимайте scraping, labels, counters, gauges, histograms, PromQL, cardinality и компромиссы alert rules.

Prometheus по расписанию pull'ит метрики с targets, хранит time series по имени и labels и считает PromQL для дашбордов и алертов. Pull-модель, label-centric, типичен в Kubernetes.

| Тип | Применение | |-----|------------| | Counter | Монотонный рост (запросы, ошибки) | | Gauge | Значение «сейчас» (глубина очереди, память) | | Histogram | Распределения latency/count с buckets |

					sum(rate(http_requests_total{status=~"5.."}[5m]))
  / sum(rate(http_requests_total[5m]))
				

Cardinality взрывается от user ID или неограниченных path в labels — проектируйте набор labels осознанно. Recording rules и `for: 5m` снижают flapping.

На интервью: pull vs push, buckets гистограмм, exemplars к traces и дизайн alert rules.

Типовые ошибки: `rate()` на gauges; слишком много buckets; алерты на сырые counters без агрегации.

Компромисс — мощный ad-hoc query против операционной цены дисциплины labels.

Чеклист:

  • Counters + histograms для RED.
  • Ограниченные измерения labels.
  • Recording rules для тяжёлых запросов.
  • Тест alert rules на исторических данных.