Расскажи про градацию алертов в мониторинге

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

Ответ

В наших системах мониторинга на базе Prometheus и Grafana мы использовали четкую градацию алертов, которая определяла приоритет и канал уведомления. Основа — классификация по последствиям для бизнеса и пользователей.

Уровни критичности, которые мы настраивали:

  1. Critical (Критический): Полная или значительная недоступность сервиса, напрямую влияющая на бизнес-процессы. Пример: Сквозная ошибка оплаты, недоступность основного API > 5 минут, отказ всех реплик базы данных. Уведомление: звонок (PagerDuty/OpsGenie) + Slack/Telegram.
  2. High (Высокий): Серьезная деградация сервиса, влияющая на часть пользователей или функциональности. Пример: Повышение latency ключевого эндпоинта выше 2 секунд, увеличение rate 5xx ошибок выше 5%, отказ одной из зон доступности. Уведомление: Slack/Telegram с требованием немедленного реагирования.
  3. Warning (Предупреждение): Потенциальная проблема, которая не влияет на пользователей сейчас, но может перерасти в более серьезную. Пример: Заполнение диска на 85%, достижение 80% лимита памяти в Pod'е, аномальный рост количества логов. Уведомление: Slack/Telegram, задача в тикет-системе.
  4. Info (Информационный): События, не требующие немедленного действия, но важные для аудита или информации. Пример: Успешный деплой новой версии, перезапуск пода по причине OOMKilled, срабатывание горизонтального автомасштабирования (HPA). Уведомление: лог-канал в Slack.

Пример правила Prometheus для алерта уровня High:

- alert: APIHighLatency
  expr: histogram_quantile(0.95, rate(http_request_duration_seconds_bucket{job="api-gateway", path!~"/health"}[5m])) > 1.5
  for: 3m # Задержка перед срабатыванием, чтобы отсечь кратковременные всплески
  labels:
    severity: high
    team: backend
  annotations:
    summary: "Высокая задержка API-шлюза"
    description: "95-й перцентиль задержки запросов к {{ $labels.instance }} превышает 1.5 секунды уже 3 минуты."
    runbook: "https://wiki.internal/runbooks/api-high-latency"

Ключевое правило: каждый алерт должен иметь понятное описание и ссылку на runbook с инструкциями по диагностике и устранению.