Вопрос с собеседования · System design

Дежурных будят алерты «загрузка CPU выше 90%», которые в большинстве случаев ни к чему не приводят. Как правильно перестроить алертинг?

MiddleНаблюдаемость и SLO
Ещё спрашивают так:
  • Как бороться с ложными алертами?
  • Что такое алерт по скорости прожигания бюджета?
Коротко

Алертить на симптомы (пользователям плохо: ошибки, задержка, нарушение SLO), а не на причины (CPU 90%). Высокая загрузка может быть нормой.

  • Будить человека — только срочное, действенное и с инструкцией (runbook)
  • Алерт по скорости прожигания бюджета с двумя окнами: короткое ловит аварию, длинное — медленную деградацию
  • Причины (CPU, диск, очереди) — на дашборды и в тикеты днём

А ещё Ложный алерт чинят или удаляют, а не заглушают

Подробно

Почему CPU 90% — плохой алерт. Высокая загрузка часто означает, что ресурс используется эффективно. Пользователи могут не замечать ничего, а дежурный просыпается зря. Через несколько недель алерты перестают читать — и пропускают настоящую аварию.

Симптомы значимы всегда: доля 5xx выросла, задержка превысила порог, очередь заказов не разбирается, SLO нарушается. Их видят пользователи.

Burn rate. Скорость прожигания — во сколько раз быстрее нормы расходуется бюджет ошибок. Схема из Google SRE:

  • быстрая авария: burn rate 14 за 1 час и за 5 минут — страница сейчас;
  • медленная деградация: burn rate 6 за 6 часов и за 30 минут — страница;
  • ещё медленнее — тикет.

Два окна: длинное даёт значимость, короткое — быстрое снятие алерта, когда проблема прошла.

Гигиена:

  • каждый ночной алерт — срочный (нельзя подождать до утра), действенный (есть что сделать) и со ссылкой на инструкцию;
  • причинные метрики — на дашборды для диагностики, предупреждения — тикетами;
  • разбор каждого ложного срабатывания: исправить порог, условие или удалить;
  • метрика шума: число страниц на дежурство.

Что хотят услышать

  • Симптомы против причин с примерами.
  • Алерты по SLO и скорости прожигания, два окна.
  • Требования к ночным алертам, борьба с ложными.

Частые ошибки

  • Добавлять алерт на каждую метрику ресурсов.
  • Заглушать шумные алерты вместо исправления.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Алертить на симптомы для пользователя: ошибки, нарушение SLO
  • ✗Поднять порог до 95%, чтобы ложных срабатываний стало заметно меньше
  • ✗Отключить ночные алерты и разбирать накопившиеся срабатывания утром
  • ✗Добавить алерты на память и диск рядом с CPU, чтобы у дежурного была полная картина

Что спросят дальше

  • Зачем в burn rate два окна?
  • Что делать с алертом, который регулярно оказывается ложным?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования