Дашборды и оповещения

Что это такое

Дашборд — это набор графиков, отвечающих на вопрос, который у кого-то действительно есть; оповещение — правило, решающее, что человеку пора действовать. И то и другое строится из одних и тех же сигналов и отказывает одинаково: отвечает на вопрос, которого никто не задавал, или срабатывает так часто, что на него перестают смотреть. Искусство — выбрать немного того и другого, чтобы взгляд был информативным, а уведомление осмысленным.

Почему это важно

Дежурство хорошо настолько, насколько хороши его оповещения. Оповещение, срабатывающее на симптом, по которому человек может действовать, ценно; то, что срабатывает на причину, на которую никто не может повлиять, приучает команду игнорировать уведомления, и следующее настоящее пропускают. У дашбордов та же проблема в более медленном темпе: стена метрик хостов выглядит как усердие и ничего не говорит о том, обслуживают ли ещё пользователей.

Ключевые идеи

Оповещайте о симптомах, которые чувствуют пользователи, а не о причинах

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

оповещение: доля ошибок за пять минут выше 2% у этого сервиса
не:         процессор выше 80% где-то

У каждого оповещения есть владелец и действие

Если получатель не может действовать, оповещение — это уведомление, и место ему в другом канале. Если сервисом никто не владеет, у оповещения нет получателя, и места ему нет нигде. Записать предполагаемое действие рядом с правилом — на удивление действенный фильтр: правила, для которых действие не описать, обычно удаляют.

Порог должен отражать допуск, а не среднее

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

Частота, ошибки, длительность и насыщение покрывают большинство инцидентов

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

Дашборды должны быть слоистыми

Обзор для всей системы, средний слой по сервису с четырьмя сигналами и подробность для углубления. Обзор отвечает на вопрос, что-то не так, за секунды; подробность отвечает, где. Дашборд, который начинается с подробности, под давлением бесполезен.

Система оповещения, которая никогда не срабатывала, не проверена. Правила, которые можно нарочно прогнать, и привычка проверять, доходят ли уведомления, — вот что делает систему надёжной, когда это важно. То же относится к дашборду, на который никто не смотрел с момента создания.

Оповещения устаревают и накапливаются

Каждое правило переживает инцидент, ради которого его завели. Периодический пересмотр набора, удаление того, по чему никто не действует, и слияние дубликатов держат остаток правдоподобным. Ценность системы оповещения обратно пропорциональна её шуму.

Практика

Напишите одно оповещение о симптоме из цели

Возьмите сервис с заявленной целью надёжности и напишите одно правило, которое срабатывает, когда доля ошибок за пять минут превышает допуск, подразумеваемый этой целью.

Готово, когда: правило называет сервис, порог, окно и действие, которое должен предпринять получатель.

Сведите дашборд к четырём сигналам

Возьмите существующий дашборд и замените его обзором четырёх сигналов по каждому сервису, оставив старый доступным для углубления.

Готово, когда: человек, незнакомый с системой, по одному обзору может сказать, здорова ли система.

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

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

Что читать дальше