Alerting & on-call
Тема дорожной карты · DevOps Engineer
Уведомления и дежурства включают в себя настройку уведомлений и рабочих процессов реакции для своевременного выявления и решения проблем. Используйте инструменты, такие как Prometheus и Alertmanager, чтобы настроить уведомления на основе определенных условий, и интегрируйте с PagerDuty или Opsgenie для эффективного ведения дежурств и управления инцидентами.
Как это работает
Alerting & on-call — практика инструментирования систем так, чтобы можно было задавать произвольные вопросы об их состоянии и поведении. Три столпа: metrics (числовые временные ряды — Prometheus), logs (структурированные события — Loki / ELK) и traces (пути запросов между сервисами — Tempo / Jaeger). Современные стеки объединяют их в Grafana для визуализации, с alert-правилами в Prometheus / Alertmanager, срабатывающими на нарушения SLI. Термины SLI/SLO/SLA (популяризованные книгой Google SRE) дают observability бизнес-ориентированный язык: определите "достаточно хорошо", измерьте и распланируйте error budget.
Когда применять
Внедряйте Alerting & on-call до прода — дебаг инцидента без метрик, логов и trace'ов — это гадание. Минимум: Prometheus + node-exporter + Grafana на одной VM, скрейпящие /metrics каждого сервиса. Логи (Loki + Promtail) добавьте в первый месяц. Distributed tracing окупается, когда у вас 5+ сервисов, общающихся друг с другом. Определите 1–2 SLI на каждый критичный user journey (например, "checkout p95 latency < 500мс") и алертите на burn rate, а не на point-in-time нарушения порога.
Типичные ошибки
Ловушки observability: alert fatigue (50 алертов/день = 0 actionable); cardinality-взрыв метрик (один label на user-id положит Prometheus OOM); неструктурированные логи (регулярки на "ERROR" не масштабируются); нет log retention (платите вечно); красивые дашборды, не отвечающие на конкретные вопросы инцидента; нет runbook к каждому алерту (просыпаться в 3 ночи на "high latency" без remediation-шагов — жестоко). Версионируйте дашборды в Git через Grafana provisioning.