Alerting (алертинг) — это система автоматических уведомлений. Вручную смотреть в дашборды Grafana 24/7 нереально. Как только метрики выходят за заданные пределы (всплеск 500-х ошибок, рост latency), система сама отправляет сигнал дежурной команде.
Главная цель: Узнать о проблеме и починить её до того, как пользователи начнут писать в поддержку.
Инструменты: Кто поднимает тревогу?
- PromQL: Язык запросов Prometheus. Он ищет аномалии. Например, правило: «Если 5xx ошибок больше 10 за 5 минут — триггери алерт».
- Alertmanager: Компонент Prometheus, который берет сработавший триггер, убирает дубликаты (дедупликация) и маршрутизирует его. Мелкий баг — шлет в Slack. Полный отказ БД — инициирует звонок.
- PagerDuty / OpsGenie / Zabbix: Системы диспетчеризации. Они знают расписание дежурств разработчиков (on-call) и умеют делать «робозвонки» на телефон дежурному инженеру посреди ночи, пока тот не возьмет трубку.
Что именно мониторить? (RED & Golden Signals)
Не нужно вешать алерты на всё подряд. В индустрии есть два устоявшихся стандарта для веб-сервисов:
| RED Модель (Микросервисы) | Golden Signals (Google SRE) |
|---|---|
| R (Rate): Скорость запросов (RPS). | Traffic: Объем запросов к системе. |
| E (Errors): Процент ошибочных ответов. | Errors: Уровень ошибок (5xx). |
| D (Duration): Время обработки (Latency). | Latency: Время ответа на запрос. |
| Saturation (Насыщение): Насколько исчерпаны ресурсы (CPU, RAM, коннекты). |
Примеры PromQL-запросов для Golden Signals
1. Latency-алерт (Задержка): Если 95-й перцентиль времени ответа больше 300мс (0.3с) за последние 5 минут.
SQL
histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job="myservice"}[5m])) > 0.3
2. Errors-алерт (Ошибки): Если 5xx-ошибок больше 10 штук за 5 минут.
SQL
rate(http_requests_total{job="myservice", code=~"5.."}[5m]) > 10
3. Saturation-алерт (Насыщение ресурсов): Если средняя загрузка CPU контейнера превышает 80% на протяжении 5 минут.
SQL
avg by (instance) (rate(process_cpu_seconds_total{job="myservice"}[5m])) > 0.80
Полезные ресурсы
- Smart Alerts от LinkedIn (ThirdEye). Алерты на основе жестких порогов быстро устаревают. Как LinkedIn использует машинное обучение (ML) в системе ThirdEye для поиска реальных аномалий в поведении пользователей.
- Uber Argos. Миллионы поездок в секунду. Как Uber построил Argos — систему алертинга в реальном времени, которая фильтрует шум и не генерирует ложных срабатываний, давая инженерам спокойно спать.