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 на исторических данных.