Лента событий и инциденты

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

События — основа уведомлений: всё, что приходит в Telegram, MAX или на почту, сначала появляется в ленте. Ниже — как читать вкладку «События» стека и события сервера, какие бывают типы и уровни и чем события отличаются от инцидентов.

Вкладка «События» стека

Вкладка «События» есть у каждого стека. В ней в одну ленту собраны HTTP-проверки, контейнеры, правила уведомлений и изменения.

Наверху выбирается период: «24 ч», «7 дн» или «30 дн». Под ним — сводка: сколько было сбоев, сколько из них «идёт сейчас» (без восстановления), сколько «восстановлено», сколько «разовых» (OOM, падения, ошибки в логах) и сколько «изменений» (выкатки и правки проверок).

Карта сбоев

«Карта сбоев» — полоса времени, на которой у каждого источника своя дорожка: проверка сайта, сервис, сервер. Отрезок — сбой от начала до восстановления, засечка — разовое событие. Над картой — общий простой за период и какой источник лежал дольше всех. Если сбоев не было, карта так и скажет: «За период сбоев не было».

Лента по дням

Ниже — лента, сгруппированная по дням: «Сегодня», «Вчера», даты. Незакрытые сбои подняты наверх в группу «Идёт сейчас», чтобы не потеряться.

Главное в ленте — эпизоды:

  • сбой и восстановление одного источника — одна строка с длительностью: «идёт 12 мин» или «восстановлен · 4 мин»;
  • повторы одного инцидента контейнера — одна серия: «Перезапускается», «Убит по OOM», «Упал с кодом 1» — с числом повторов и временем «с … по …».

Фильтры: «Все», «Сбои» или «Изменения», и выбор источника — «Все источники», «HTTP», «Контейнеры», «Сервер», «Метрики», «Логи», «S3», «Сервисы», «Стек».

Если Наблюдатель нашёл причину сбоя, под событием видно «Причина:» и «Цепочка:» от симптома к причине, например «сайт ← api ← база db ← диск сервера», и ссылка «Улики и путь на карте →». Причина приходит и в уведомлении. Как это устроено — в статье Карта проекта.

Лента показывает до 500 последних событий за период; если их больше, внизу будет «Показаны последние … из …».

Типы событий

Источник События
Проверки сайтов «Сайт недоступен», «Сайт снова доступен», «Замедление ответа», «Сильное замедление», «Сертификат скоро истекает», «Сертификат истёк», «Сертификат обновлён», «Сменился IP-адрес сайта», «Устаревшая версия TLS», «HTTP больше не ведёт на HTTPS»
Контейнеры и поды «Контейнер нездоров», «Контейнер восстановлен», «Контейнер: OOM», «Контейнер: ошибка завершения», «Под в CrashLoopBackOff», «Под вышел из CrashLoopBackOff», «Выкатка»
Пороги и аномалии «Превышен порог», «Порог в норме», «Аномалия метрики», «Метрика вернулась к норме», «Аномалия в потоке логов», «Аномалия устранена»
Сервисы по трассам «Цель сервиса нарушена», «Сервис снова в цели», «Аномалия сервиса», «Сервис вернулся к норме»
Метрики приложения «Источник метрик не отвечает», «Источник метрик снова отвечает»
Ошибки и агенты «Ошибка приложения» (новая), «Повтор ошибки приложения» (вернулась после «решено»), «Сбой агента»
Серверы «OOM на сервере», «Перезагрузка сервера», пороги диска, CPU, памяти, открытых файлов
Изменения «Монитор создан / изменён / удалён», «S3-хранилище подключено / изменено / отключено», «Стек связан с сервером»

Уровни событий

У каждого события есть уровень. От него зависит, придёт ли уведомление.

Уровень Смысл Примеры В каналы по умолчанию
«Ошибка» чинить сейчас сайт недоступен, OOM, падение контейнера, сертификат истёк, новая ошибка приложения да
«Предупреждение» присмотреться замедление сайта, превышен порог, сертификат истекает, перезагрузка сервера, нарушена цель сервиса да
«Успех» всё вернулось сайт снова доступен, контейнер восстановлен, сертификат обновлён да
«Инфо» для истории выкатка, правки проверок, сменился IP сайта, «Порог в норме», аномалия сервиса нет

Уровень для событий правил задаётся в самом правиле. События о сертификатах, TLS, редиректе на HTTPS, новых ошибках приложения, сбоях агента, OOM и перезагрузке сервера пишутся всегда, без правил.

Выкатки

Когда сервис запускается в новой версии — с новым образом, а с агентом 0.13 и с новой конфигурацией (переменные окружения, ConfigMap, compose-файл), — в ленте появляется событие «Выкатка: api, worker» со списком сервисов. В Kubernetes выкатка новыми подами тоже засчитывается, простой перезапуск — нет. Нужен агент 0.12 или новее.

Выкатка имеет уровень «Инфо» и по умолчанию не приходит в каналы. Если хотите получать её в отдельный чат, добавьте тип «Выкатка» в фильтр канала. Разбирая сбой, первым делом посмотрите, не было ли выкатки прямо перед ним: фильтр «Изменения» покажет их отдельно.

События и инциденты сервера

На «Дашборде» сервера есть блок «События сервера» — таблица с колонками «Время», «Уровень», «Тип», «Источник», «Сообщение», «Детали» и фильтром по уровню. Сюда пишутся OOM и перезагрузки сервера, сбои агента и сработавшие пороги правил: диск, CPU, память, открытые файлы.

Вкладка «Инциденты» сервера — тот же журнал с фильтрами «OOM», «Перезагрузка», «Агент», «Пороги». Подробнее — в статье Мониторинг сервера.

Чем инцидент отличается от события

Инцидент контейнера — факт из жизни контейнера: OOM, падение с кодом, серия перезапусков, HEALTHCHECK не прошёл, ошибка в логах. Агент сообщает о нём всегда, и он попадает в журнал «Инциденты» на странице контейнера независимо от правил. Это материал для разбора: у каждого инцидента своя страница с графиками и логами вокруг момента сбоя.

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

Поэтому инцидент может быть, а уведомления не прийти — если правило для него выключено. Журнал инцидентов контейнера описан в статье Контейнеры и поды.

Как события становятся уведомлениями

text
данные → правило проекта → событие в ленте → каналы проекта → Telegram / MAX / почта
  1. Правило проекта следит за проверками, контейнерами, серверами, хранилищами и метриками всех стеков проекта. Правила настраиваются в правилах уведомлений.
  2. Сработавшее правило пишет событие с типом и уровнем. Когда проблема ушла — событие возврата. Пока состояние не изменилось, повторных событий нет: одно срабатывание — одно уведомление, без повторов каждую минуту.
  3. Каналы проекта решают, что отправить: канал должен быть включён, уровень события отмечен в канале, а событие — пройти фильтр канала по источникам и типам. Подробнее — в статье Уведомления в Telegram, MAX и на почту.

Правило без канала только пишет в ленту. Канал без подходящих правил молчит.

Сводки вместо потока сообщений

Первое уведомление о проблеме в стеке приходит сразу. Всё, что случилось в том же стеке следом за ним в ближайшие 30 секунд, приходит одним сообщением «Ещё события» со списком. Если в канал уходит больше 10 сообщений в минуту — например, сбой задел много сервисов, — Наблюдатель присылает одну «Сводку уведомлений» в минуту, пока поток не утихнет. В ленте стека при этом видно каждое событие по отдельности.

Через ИИ-ассистента

ИИ-ассистент читает ленту стека и сервера и сам разбирает сбой: «что случилось в prod ночью», «была ли выкатка перед падением api», «почему пришло уведомление о диске». Он же поможет убрать шум: посмотрит, какие правила срабатывают слишком часто, и предложит поднять порог или понизить уровень.

Что дальше

Попробуйте Наблюдатель

Первый сервер или стек подключается за пару минут. Бесплатно в раннем доступе.

Создать аккаунт

Нашли неточность или не хватает ответа? Напишите на hello@nablserver.ru