Оповещения и каналы
Канал — это место, куда может прийти оповещение. Добавьте столько, сколько нужно, а затем для каждого монитора выберите, какие из них обычные, а какие — для эскалации.
Что можно добавить
Эти вы добавляете сами, в разделе Настройки → Уведомления:
- Электронная почта — любой адрес.
- Slack, Teams, Discord — URL входящего вебхука из соответствующего приложения.
- Telegram — чат, привязанный через нашего бота.
- PagerDuty и Jira Service Management — ключ интеграции.
- Вебхук — ваша собственная точка приёма. Только HTTPS, с подписью, см. ниже.
А эти добавляет тот, кто их получает, — их не вписывает кто-то другой:
- Push — установить мобильное приложение и разрешить уведомления.
- SMS — внести свой номер и подтвердить код, который мы на него пришлём.
- WhatsApp — то же самое, через WhatsApp.
- Спутник — аппарат Iridium, Inmarsat или Thuraya, доступный по почте через оператора.
Чей это канал
Каждый канал принадлежит либо команде, либо конкретному человеку, и от этого зависит, что произойдёт, когда человек уйдёт.
Общий канал — вебхук #alerts, сервис PagerDuty, список рассылки — принадлежит организации и переживает любой уход.
Личный — телефон, приватный чат Telegram, мобильный номер — принадлежит тому, кто его внёс, и удаляется, когда его удаляют из организации. Пока это не было так, чат Telegram удалённого коллеги бесконечно продолжал получать сообщения о сбоях, при том что членство и ключи API уже были отозваны.
Поэтому, направляя оповещение, посмотрите, чей это канал. Тот, кто настраивает вызов, обычно не тот, кого он разбудит.
Адрес должен согласиться прежде, чем ему что-то отправят
Почта, SMS, WhatsApp и спутник сначала подтверждаются. Добавьте канал электронной почты — и адрес получит ровно одно письмо с вопросом, хочет ли он быть адресатом оповещений, и больше ничего, пока не согласится. При добавлении номера телефона вы вводите обратно код.
Это существует потому, что канал почты — это адрес, который кто-то другой вписал в чужой аккаунт. Без этого редактор мог бы направить «мигающий» монитор в почтовый ящик постороннего человека, а мы бы доставили. Кнопка тестовой отправки не работает, пока адрес не подтверждён, по той же причине: иначе это неограниченный способ писать на адрес без согласия, под полезной на вид подписью.
Каналы чатов и push не спрашивают, и это не исключение. Тот, кто вставил URL вебхука Slack, должен был им обладать, а push-канал регистрирует сам владелец аппарата — ни один из них нельзя навести на постороннего, просто вписав адрес.
Адрес, который уже принадлежит подтверждённому участнику вашей организации, подтверждается автоматически: этот человек доказал, что адрес его, при регистрации.
SMS и WhatsApp
Оба с тарифа Pro, и оба берут из одного лимита: Pro получает 10 в день, 15 в неделю и 30 в месяц; Business и Enterprise — 15, 50 и 100. Это один пул, потому что и то и другое стоит денег за сообщение и достигает одного и того же телефона, — а то, от чего защищает лимит, то есть один «мигающий» монитор, тратящий месячный бюджет за час, одно и то же событие, каким бы каналом оно ни шло.
Три окна вместо одного, потому что одно имеет неверную форму. Один лишь месячный лимит позволит одному «мигающему» монитору потратить всё за день; один лишь дневной — позволит медленной капели обойтись в тридцать раз дороже задуманного.
Лимит применяется при постановке сообщения в очередь, так что заблокированное никогда не занимает место, и считается по тому, что действительно отправлено, а не по счётчику: счётчик невозможно удержать честным поверх вызова чужого API.
SMS доходит не всюду, и мы говорим об этом до внесения номера
Охват SMS зависит от страны получателя. Некоторые сети вообще не пропускают сообщение от такого отправителя, как наш; другие принимают его только с имени отправителя, зарегистрированного у местного регулятора. Выбор стран предлагает только те направления, которых мы рассчитываем достичь, а полный список есть на странице тарифов.
Там, где имя отправителя может быть заменено местным номером, вам скажут об этом при внесении номера, а не оставят узнать это из сообщения, пришедшего с незнакомого номера. У WhatsApp нет ни одного из этих ограничений, ему нигде не нужна регистрация, и он достаёт до всех стран, до которых не достаёт SMS.
В оповещениях никогда нет ссылок. Операторы фильтруют незнакомые URL, а отфильтрованное оповещение — это то, которого вы не получите. Поэтому монитор с именем acme.com приходит как acme com.
Спутник
Для аппарата, у которого сотовой сети нет вовсе. Сообщения идут по почте через шлюз оператора, поэтому вы платите по почтовым тарифам, а не по тарифам SMS, — но операторы ограничивают доставку пятью сообщениями в сутки на аппарат, и это их ограничение, а не наше; каждое сообщение обрезается до 160 символов.
Необычно медленно
Монитор может проходить все проверки и всё равно быть в беде. Как только у него есть история хотя бы за сутки, мы сравниваем, как быстро он отвечает сейчас, с его обычной скоростью из той же точки измерения, и сообщаем, когда он отвечает намного медленнее обычного, — по тем же каналам, что и об инциденте на этом мониторе. Когда скорость возвращается к обычной, мы сообщаем и об этом. Доступно на всех тарифах.
Это не инцидент. Ничего не упало, поэтому это не влияет на показатель доступности, не появляется на странице статуса и не эскалируется. Ответ быстрее обычного никогда не вызывает оповещения; замедление должно быть не меньше 100 мс и явно выходить за обычный разброс монитора; и ничего не оценивается, пока монитор на паузе, в окне обслуживания или уже имеет открытый инцидент.
Вебхук получает эти события как latency_anomaly и latency_recovered с обычным и измеренным временем ответа в миллисекундах.
Вебхуки
Только HTTPS. Каждый запрос подписан, чтобы вы могли убедиться, что он от нас. Частные и link-local адреса отклоняются при сохранении URL и ещё раз при отправке оповещения — потому что имя хоста, которое при сохранении разрешалось в публичный адрес, позже может разрешаться в другой, а прошедший проверку URL может ответить перенаправлением куда угодно. Перенаправления не выполняются.
Дежурства
С тарифа Pro. Постройте график, задайте шаги эскалации — и неподтверждённый инцидент пойдёт по ним вверх. Подтверждение останавливает эскалацию; закрытие завершает её.
Именно эскалация делает личный канал нужным: первым шагом может быть командный чат, а последним — чей-то телефон в четыре утра.
Разборы инцидентов
На всех тарифах. Когда инцидент закрыт, любой, кто может закрывать инциденты, может написать его разбор — что произошло, почему и что меняем — и дополнять его по ходу расследования. На один инцидент — один разбор, в Markdown: заголовки, жирный и курсив, списки, код, цитаты и ссылки. HTML показывается как текст и никогда не выполняется.
Разбор — внутренний документ. Он никогда не появляется на странице статуса, потому что обычно называет людей, системы и ошибки. Сохранение записывается в журнал аудита — длиной текста, а не его содержимым.
Что происходит, когда доставить не удаётся ничего
Канал, на котором произошёл сбой, записывает причину на себе, словами самого провайдера, а не падает молча. Отклонённая SMS сообщает, что сказала сеть. Сообщение WhatsApp, отклонённое через минуты после приёма, сообщает, какой шаблон и какой язык.
Это важнее, чем кажется. Каждый из этих провайдеров сразу отвечает «принято», а реальный итог сообщает позже, — поэтому без чтения этого отчёта канал выглядел бы подтверждённым, сообщение выглядело бы отправленным, и первое, что кто-либо услышал бы, — это сбой, о котором никого не предупредили.