Группы инцидентов

Когда падает узел, от которого зависят другие (шлюз, гипервизор, база), сигналы сыплются со всех сторон: молчат хосты за шлюзом, срабатывают metric-пороги, горит SLO монитора. Группы инцидентов сворачивают этот веер в одну карточку: корневой инцидент недоступности (тишина хоста или падение uptime-монитора) плюс состав — инциденты узлов, связанных с корнем цепочкой упавших узлов по декларированным зависимостям (рёбра зависимостей задаются на странице «Оповещения → Тишина → Подавление шторма»).

Как строится группа

  • Корень группы — открытый инцидент недоступности узла: тишина хоста или падение монитора. Пороговые инциденты хоста (диск/память/нагрузка) корнем не становятся: деградация — не недоступность.
  • Член группы — инцидент, чей узел связан с корнем цепочкой упавших узлов: host-инциденты (по хосту), uptime-инциденты (по монитору), metric-пороги с меткой host, SLO типа uptime (по монитору цели).
  • Пока корень открыт и его уведомление ушло, члены группы не шлют собственных open-уведомлений и не эскалируют — информирует корень. В уведомлении корня появляется строка «Зависимых узлов: N». В ленте такой участник отмечен бейджем «молчит — уведомляет корень».
  • Сигналы, опередившие падение корня, присоединяются задним числом — их уже отправленные уведомления не отзываются.
  • Когда корень закрывается, группа закрывается; члены, оставшиеся открытыми (диск всё ещё полон), снова уведомляют и эскалируют — лесенка начинается заново с момента закрытия группы. Такой бывший член сразу же появляется в разделе «Вне групп»: привязка к закрытой группе (group_id) на самом инциденте не снимается, но лента отфильтровывает по факту резолва группы, а не по пустому group_id — проблема, пережившая своего соседа, не теряется из виду.

Обзор

Раздел «Обзор» показывает открытые группы с составом (раскрытие на месте), открытые инциденты вне групп по всем шести источникам и недавно решённое — окно переключается (24ч/7д).

Шапка карточки группы показывает тип и имя корня (ссылкой на его страницу; для узла, который с тех пор удалили, — пометка «узел удалён»), важность корня и переведённый состав с общим числом участников. У открытой группы рядом стоит время, когда она началась, у закрытой — время закрытия и бейдж «решена». Корень показан в шапке карточки своей группы и в разделе «Вне групп» не повторяется. Участник, закрывшийся раньше самой группы (диск освободился, а корень ещё недоступен), помечен в составе как решённый — со временем закрытия.

Открытый или недавно закрытый инцидент вне группы, который раньше входил в группу, а та с тех пор закрылась (или её карточка уже удалена по ретеншену), несёт бейдж «ранее в группе — <имя корня>»: связь с бывшей группой не теряется из виду, даже когда её саму на ленте уже не видно (если карточка ещё среди недавно решённых — бейдж ведёт на неё ссылкой).

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

  • «молчит — уведомляет корень» — инцидент открытой группы, за который вместо него уведомил корень: собственных open-уведомлений участник не шлёт, пока группа и его инцидент открыты.
  • «подавлен: родитель недоступен» — подавление по графу зависимостей (рёбра — на странице «Оповещения → Тишина → Подавление шторма»), механизм, независимый от группировки: у инцидента подавлена эскалация, потому что его узел зависит от узла, который уже недоступен. Отсутствие этого бейджа не означает, что уведомление точно ушло — оно могло быть придержано по первой причине.

Почему транзакции и профилирование вне групп

У регрессий транзакций и профилей нет узла (их ключи — транзакция и функция), и причинную связь с падением конкретного хоста утверждать нельзя. Их инциденты показываются в ленте в секции «Вне групп», а их уведомления не меняются.