Дежурство без хаоса: ротация по людям, подмены и подтверждение из Telegram
Тревога в общем чате видна всем — и поэтому ни за кем лично не закреплена. В Pulse смену держит конкретный человек: пейдж уходит лично дежурному, подтвердить его можно кнопкой в Telegram, а отпуск или обмен сменами оформляется подменой, а не перепиской. Рассказываем, как это устроено и как работает наша собственная дежурная смена.
6 мин чтения
Ротация: смену держит человек или канал
Расписание дежурств — это кольцо смен. Каждую смену держит либо канал оповещений, либо участник организации — ровно что-то одно. Кто дежурит сейчас, Pulse вычисляет по времени, без отдельного задания по расписанию. Экран инцидента, эскалация и настройки опираются на один и тот же расчёт.
Дежурить может только тот, кто работает с инцидентами: владелец, администратор или участник с ролью «дежурный». Эта роль даёт право только работать с инцидентами и может быть ограничена группами мониторов — например, для подрядчика, который отвечает за один проект. После понижения до роли без этого права человек остаётся в кольце, но перестаёт получать пейджи, и экран настроек прямо об этом говорит.
Куда приходит пейдж
Пейдж дежурному уходит не только в каналы организации, но и по личным маршрутам:
- срочный push на устройства, где включены уведомления;
- личный Telegram — с кнопкой «Подтвердить»;
- e‑mail аккаунта, если адрес подтверждён;
- SMS на телефон, подтверждённый кодом из SMS, — на платных тарифах и в пределах дневного лимита SMS организации.
Пейдж уходит при открытии инцидента — вместе с каналами — и на уровнях эскалации, отмеченных «дежурный». Сообщение о восстановлении получают те, кого пейджили по этому инциденту, туда же, куда дошёл пейдж; по SMS восстановление не приходит.
Правила те же, что в приложении. Если организация требует второй фактор, а у человека его нет, пейджей нет. Дежурный, ограниченный группами, не получает пейдж о мониторе чужой группы — за такой монитор отвечают каналы.
Telegram как учётные данные
В пейдже — подробности инцидента, а кнопка «Подтвердить» действует от имени человека. Поэтому привязка Telegram защищена почти как пароль:
- код привязки создаётся в «Аккаунте», живёт 15 минут и хранится только в виде хэша;
- бот не привязывает молча: он спрашивает, к какому аккаунту привязать, и ждёт «Да, привязать» — чужая ссылка ничего не привяжет;
- Telegram, уже привязанный к другому аккаунту, не перехватывается;
- о привязке приходит письмо, а в «Аккаунте» видно, какой Telegram привязан;
- смена или сброс пароля, смена e‑mail и «Выйти на всех устройствах» отвязывают Telegram и снимают подтверждённый телефон и push-подписки — устройство из украденной сессии не получит пейджей после возврата аккаунта.
«Подтвердить» под пейджем подтверждает инцидент с правами этого человека — роль, группы и правило 2FA проверяются так же, как в приложении, — и попадает в журнал. Подтверждённый инцидент дальше не эскалируется, а отложенные повторы доставки не уходят.
Канал Telegram организации — только группа или канал, не личный чат. Бот может написать любому, кто когда-то его запускал, и личный чат в роли канала позволил бы слать пейджи постороннему. Новая группа подтверждается кодом, отправленным в неё, и до этого ничего не получает.
Лестница эскалации
Если инцидент не подтверждён, лестница эскалации поднимает его по уровням. На уровне, отмеченном «дежурный», пейдж получает тот, кто дежурит сейчас. Уровень без своих каналов обходится пейджем дежурному вместо рассылки по каналам — но только если до человека дошёл Telegram или SMS, то есть то, что будит. Письмо или push рассылку не заменяют.
Если до дежурного не дошло ничего — Telegram недоступен, SMS упёрлись в дневной лимит, — уровень уходит во все каналы организации. То же происходит, когда все каналы уровня на паузе, удалены или ждут подтверждения получателем: оповещение уходит во все рабочие каналы, а у каждого молчащего канала в журнале записана причина. В выборе каналов такие каналы не прячутся, а помечены «ждёт подтверждения» или «на паузе».
Подмены: отпуск, обмен, праздники
Жизнь не совпадает с кольцом, поэтому есть подмены — на заданный срок смену держит другой человек:
- вместо одного человека — только в те часы, которые кольцо отводит подменяемому: отпуск, обмен сменами;
- вместо всего кольца — например, на праздники.
Любую подмену ставит и отменяет тот, кто управляет оповещениями. Дежурный может передать свою смену из «Аккаунта» и забрать её обратно — но только свою. Подменяющий должен работать с инцидентами и состоять в организации; это проверяют и форма, и база.
Форма не даёт ошибиться по невнимательности:
- кто подменяет и кого — обязательные поля, по умолчанию ничего не подставляется;
- в выборе видно, как связаться с каждым и к каким группам мониторов есть доступ;
- человек без требуемого второго фактора подменяющим не ставится;
- подмена, которая ничего не меняет, отклоняется с объяснением;
- часы, уже занятые подменой, новая подмена не забирает;
- ответ формы честно говорит, куда уйдёт сообщение и дойдут ли пейджи.
Подменяющий получает сообщение в Telegram или на e‑mail, когда подмену ставят и когда отменяют, — с настоящими часами смены. Подмены пишутся в журнал доступа, закончившиеся удаляются через 30 дней.
Напоминание за час
За час до начала смены — по кольцу или по подмене — Pulse напоминает о ней в Telegram, на подтверждённый e‑mail и обычным push. SMS для напоминаний не используются. Если человек уже дежурит прямо перед этой сменой, напоминания нет: принимать нечего.
Каждое напоминание уходит ровно один раз: запись о нём создаётся до отправки. Выключить напоминания можно в «Аккаунте» — «Напоминать о сменах»; на пейджи об инцидентах этот переключатель не влияет. Тем, кто не работает с инцидентами или кого не пускает правило 2FA, напоминания не приходят.
Когда человек уходит из команды
Удаление участника, аккаунта или канала раньше сдвигало всё кольцо: смена посреди дня молча переходила к другому человеку. Теперь границы смен остаются на месте. Если уходит тот, кто дежурит сейчас, смену сразу принимает следующий в кольце и получает сообщение «Смена перешла к вам».
Как дежурит наша смена
Дежурная смена ServerDesk работает по тем же принципам. График смен инженеров ведётся в консоли ServerDesk. Новый инцидент клиента на обслуживании сразу назначается инженеру, который дежурит сейчас, а «Взять в работу» одновременно подтверждает инцидент.
Если инцидент остаётся открытым дольше целевого времени реакции по тарифу клиента, Pulse повторяет пейдж каждые 10 минут, не больше трёх раз, — в дежурные каналы, а при подключённых SMS ещё и на телефон дежурного инженера. Целевое время реакции: «Базовый» — 60 минут, «Бизнес» и Enterprise — 15 минут.
Тревоги клиентов на обслуживании дублируются в чат дежурной смены с пометкой «[Клиент]» и кнопками «Подтвердить» и «Взять в работу». Нажатие действует от имени инженера, к чьей учётной записи привязан этот Telegram. Если клиент пишет в чат, а за последние 10 минут ответа от инженера не было, сообщение вызывает дежурного. Каждое действие инженера записывается в журнал доступа клиента, а в хронологии инцидента подписано «Инженер ServerDesk».
С чего начать
- Каждому, кто будет дежурить: «Аккаунт» → «Пейджи дежурному» → «Привязать Telegram», в боте — «Запустить» и «Да, привязать». По желанию — телефон для SMS с подтверждением кодом.
- Настройки → Дежурства: добавьте людей в ротацию.
- В эскалации отметьте «Оповестить текущего дежурного».
- Отпуска и обмены оформляйте через «Подмены» там же.
- Подтвердите канал организации: группа Telegram подтверждается кодом, отправленным в неё.
Как Pulse решает, что отказ настоящий и пора будить, — в статье «Как подтвердить отказ».