Алертинг в Proto Observability Platform

Обзор модуля алертинга Proto Observability Platform: из чего состоит система оповещений, встроенные правила, алертинг по SLO, автоматическое выявление аномалий и интеграция с CI/CD.

На этой странице:

Модуль алертинга Proto Observability Platform отвечает за выявление проблем по телеметрии и доставку оповещений в нужные каналы. Эта страница даёт общее представление о модуле; пошаговые инструкции вынесены в отдельные руководства (см. В этом разделе).

Из чего состоит алертинг

Система оповещений складывается из трёх связанных сущностей, которые настраиваются в разделе главного меню Алерты:

СущностьНазначение
Правило алертингаУсловие на языке PromQL/MetricsQL, по которому генерируется алерт.
Политика оповещенийМаршрутизация: какие алерты в какой канал направлять (по лейблам).
Канал оповещенияКуда доставлять уведомления — email, Telegram, Webhook.

Связка работает так: правило срабатывает по условию → политика сопоставляет лейблы алерта со своими матчерами и выбирает канал → канал доставляет уведомление получателю.

Пошаговая настройка каналов, политик и правил описана в руководстве Настройка оповещений. Справочник по метрикам и выражениям для правил — на странице Метрики и выражения для правил.

Новым пользователям стоит начать с раздела Быстрый старт — он за четыре шага проводит от создания канала до первого уведомления.

Встроенные правила алертинга

Из коробки доступно множество шаблонов правил алертинга, не требующих никакой дополнительной настройки. Список правил доступен в разделе Алерты > Правила:

Список правил алертинга

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

Чтобы добавить собственное правило, воспользуйтесь кнопкой Добавить — см. Настройка оповещений → Создание правила. О доступных метриках, синтаксисе выражений и аннотациях со ссылками на дашборды читайте на странице Метрики и выражения для правил.

Правила алертинга по SLO

Начиная с версии 200, при создании SLO (см. Управление SLO) платформа автоматически генерирует набор правил алертинга по скорости сжигания бюджета ошибок:

  • Быстрое сжигание (fast burn, 14.4×/1h) — сигнализирует о внезапной деградации, при которой бюджет будет исчерпан за несколько часов;
  • Медленное сжигание (slow burn, 6×/6h) — выявляет устойчивое, но менее резкое превышение допустимого уровня ошибок;
  • Контроль объёма (volume guard) — блокирует ложные срабатывания при резком падении трафика;
  • Исчерпание бюджета — фиксирует момент нарушения SLO.

Метки и владелец из определения SLO автоматически прокидываются в алерты. Правила генерируются и обновляются сервисом proto-alert-rule-manager и появляются в общем списке правил алертинга.

Редактировать эти правила напрямую нельзя — для изменения условий измените параметры соответствующего SLO.

Автоматическое выявление аномалий

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

Подробнее — какие метрики профилируются, какие правила доступны и как добавить собственные метрики в профилирование — см. Выявление аномалий.

Инциденты

Платформа автоматически коррелирует связанные алерты и объединяет их в инциденты: вместо потока однотипных уведомлений дежурный работает с одной сущностью, у которой есть первопричина, охват, ответственный, этапы жизненного цикла (ITIL) и история. Для инцидентов доступны ИИ-сводка, ИИ-расследование первопричины и граф распространения.

Подробнее — см. Инциденты.

Интеграция с CI/CD

Вы можете сообщать в Proto Observability Platform информацию о сделанном релизе из вашего CI/CD пайплайна. Для этого встройте в свой пайплайн вызов скрипта marker.sh со следующеми аргументами:

./marker.sh "адрес_бекенд_сервер" "название_релиза" "название сервиса (опционально)"
  • Адрес бэкенд сервера указывается без префикса https://
  • Название релиза – короткая строка, например, номер коммита, версия релиза и тд.
  • Название сервиса:
    • если указано – маркер релиза будет отображаться только у этого конкретного сервиса.
    • если не указано – маркер релиза будет отображаться у каждого сервиса (то есть релиз распространяется на все сервисы).

Например:

./marker.sh "proto-backend.fqdn" "и снова 3 сентября"

Содержимое marker.sh:

#!/bin/bash

PROTO_BACKEND_URL=${1}
PROTO_RELEASE_NAME=${2}
PROTO_SERVICE_NAME="${3}"

generate_post_data()
{
 now=$(date +%s000)

if [ -z "${PROTO_SERVICE_NAME}" ]; then
  cat <<EOF
[
    {
        "uuid": "${now}",
        "name": "${PROTO_RELEASE_NAME}",
        "source": {
          "service": ""
        },
        "layer":"GENERAL",
        "type": "RELEASE",
        "message": "Релиз: ${PROTO_RELEASE_NAME} Сервис: Все",
        "parameters": {},
        "startTime": ${now},
        "endTime": ${now}
    }
]
EOF
else
  cat <<EOF
[
    {
        "uuid": "${now}",
        "name": "${PROTO_RELEASE_NAME}",
        "source": {
          "service": "${PROTO_SERVICE_NAME}"
        },
        "layer":"GENERAL",
        "type": "RELEASE",
        "message": "Релиз: ${PROTO_RELEASE_NAME}",
        "parameters": {},
        "startTime": ${now},
        "endTime": ${now}
    }
]
EOF
fi
}
  # echo $(generate_post_data) | jq
  curl -i -k \
  -H "Accept: application/json" \
  -H "Content-Type:application/json" \
  -X POST --data "$(generate_post_data)" "https://${PROTO_BACKEND_URL}/v3/events"

В этом разделе


Быстрый старт: первое оповещение

Сквозной пример настройки оповещения в Proto Observability Platform: создать канал доставки, правило и политику маршрутизации и получить первое уведомление в Telegram.

Руководство по настройке оповещений

Пошаговое руководство по настройке оповещений в Proto Observability Platform: создание каналов оповещений (email, Telegram, Webhook), политик маршрутизации и правил алертинга с описанием каждого поля формы.

Просмотр алертов и событий

Как смотреть сработавшие алерты в Proto Observability Platform: реальное время (Активные), история алертов с аналитикой и MTTR, лента событий.

Инциденты

Инциденты в Proto Observability Platform: автоматическая корреляция связанных алертов в единый инцидент, этапы жизненного цикла (ITIL), ИИ-сводка и ИИ-расследование первопричины, граф распространения и настройка рабочего процесса.

Метрики и выражения для правил алертинга

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

Выявление аномалий

Автоматическое выявление аномалий в Proto Observability Platform: что такое базовая линия, какие метрики профилируются автоматически, какие встроенные правила алертинга по ним работают и как добавить собственные метрики в профилирование через конфигурацию.

Диагностика и формат уведомлений

Жизненный цикл алерта (pending/firing/resolved), чек-лист «почему уведомление не пришло» и формат уведомлений Proto Observability Platform — содержимое email и Telegram, payload вебхука.