Настройка алертов
Основные разделы для работы с алертами
- Alert rules - создание и редактирование правил алертов (условия срабатывания, пороги, интервалы оценки).
- Recording rule - заранее вычисляет PromQL‑выражение и сохраняет результат как новую метрику.
- Notification configuration - настройки каналов уведомлений.
- Silences - временное отключение (заглушение) активных алертов по заданным критериям.
- Settings - общие настройки алертинга.
Навигация к алертам
Способ 1. Через главное меню
- Откройте Grafana и войдите в систему.
- На левой боковой панели перейдите в Alerting.
- Вы попадёте в раздел управления алертами с вкладками:
- Alert rules - список всех правил алертов
- Contact points - настройки каналов доставки уведомлений
- Notification policies - политики отправки уведомлений. По умолчанию в системе применена базовая политика.
- другие виджеты.
Способ 2. Из дашборда
- Откройте нужный дашборд.
- Найдите панель, для которой настроен алерт.
- В правом верхнем углу панели нажмите на значок колокольчика.
- В выпадающем меню выберите:
- View alert rules - посмотреть правила алертов для этой панели.
- Create alert - создать новый алерт для этой панели.
На странице Alerting вы можете добавлять и импортировать дашборды и создавать правила алертов, выбрав соответствующую операцию из выпадающего списка в правом верхнем углу экрана.

Выпадающий список действий с дашбордами и алертами
Поиск алерта
В разделе Alert rules:
- Используйте поиск по имени алерта.
- Фильтруйте по:
- статусу (
Firing,Normal,PendingиRecovering); - дашборду;
- меткам (labels);
- группе (folder).
- статусу (
- Сортируйте по:
- времени последнего срабатывания;
- важности (severity);
- имени.
Создание правила алерта
-
Перейдите в интерфейс создания алерта. В меню Grafana выберите Alerting → Alert rules, затем нажмите New alert rule.
-
Задайте понятное имя алерта. В поле Enter alert rule name укажите имя по шаблону:
bercut_<компонент>_<метрика>_<порог>.
Пример:bercut_kafka_lag_critical.
Это упрощает поиск, фильтрацию и понимание зоны ответственности. -
Выберите метрику и настройте фильтры по лейблам (Label filters) в блоке Define query and alert condition.
- В поле Metric выберите нужную метрику из списка или воспользуйтесь поиском.
- В поле Label filters задайте условия отбора по лейблам.
- Select Label - выберите ключ лейбла.
- Select filters - укажите значения и операторы для выбранных лейблов.
Используйте следующие операторы:
Оператор Назначение Пояснение применения =Точное совпадение значения лейбла. Для точечного мониторинга конкретного объекта: потока, компонента, ноды. !=Исключает указанное значение. Позволяет исключить из мониторинга тестовые потоки или отдельные ноды, не требующие алертов. =~Соответствие регулярному выражению. Когда нужно захватить группу объектов по шаблону: несколько потоков, компонентов. !~Не соответствует регулярному выражению. Исключить группу объектов, которые заведомо не должны попадать в алерт.
После того как вы выбрали метрику и задали фильтры по лейблам в блоке Define query and alert condition, с полученными значениями можно выполнять следующие операции — они нужны, чтобы превратить «сырые» метрики в условия алерта:
-
Агрегация (например,
sum(),avg(),max(),rate()).
Позволяет обобщать данные: суммировать ошибки по всем инстансам компонента, считать среднюю задержку по потоку и т. д.Пример:
sum by (flow) (rate(esb_http_errors[5m]))- суммарный RPS ошибок по каждому потоку. -
Функции над диапазоном векторов (например,
rate(),irate(),increase()). Позволяют анализировать динамику метрик за интервал времени для детектирования всплесков, трендов и аномалий в потоках Bercut.Пример:
irate(esb_queue_size[1m])- мгновенный прирост размера очереди. -
Функции (например,
abs(),ceil(),floor()). Применяются для нормализации и округления значений метрик, чтобы избежать ложных срабатываний из‑за «шума» и привести данные к удобному виду:abs()убирает отрицательные значения (актуально при ошибках агрегации или смещении счётчиков),ceil()иfloor()позволяют привести метрику к дискретным уровням для упрощения логики алертов или отображения.Пример:
ceil(esb_latency_ms / 10) * 10- округление задержки до десятков миллисекунд для группировки на дашборде. -
Бинарные операторы (например,
>,>=,<,<=). Позволяют сравнивать метрики, нормализовать, фильтровать по условиям, чтобы строить сложные условия алертов, например "ошибок больше 50 в минуту". -
Тригонометрические функции (например,
sin(),cos(),atan(),asin()). Позволяют выполнять математические преобразования значений метрик.Пример:
sin(hour(v__time) * (pi() / 12))— синусоидальная аппроксимация суточного цикла нагрузки. -
Функции времени (например,
day_of_month(),day_of_week()). Дают возможность учитывать календарную периодичность при построении алертов и дашбордов: фильтровать по дням недели, выделять выходные/праздники, корректировать пороги в зависимости от дня месяца. Полезны для правил, где поведение системы отличается по расписанию (например, ночные деплои, еженедельные отчёты).Пример:
esb_errors_total > 100 and day_of_week(v__time) != 6- алерт по ошибкам только в будни.
-
Настройте условие срабатывания в блоке Alert condition.
Укажите логику, по которой алерт определяет инцидент (порог и сравнение).
Без корректно заданного условия алерт не сможет отличить нормальную работу от эксплуатационного инцидента. -
Сгруппируйте алерты по проектам, средам или сервисам в блоке Add folder and labels. Это упрощает навигацию и разграничение сред.
- Folder - выберите существующую папку или создайте новую, нажав New Folder.
- Добавьте значимые лейблы (например,
severity=critical,component=kafka-connector) - они будут использоваться для маршрутизации уведомлений и фильтрации в дашбордах.
-
Настройте поведение оценки в блоке Set evaluation behavior.
-
Evaluation group and interval - логический контейнер, куда помещают набор правил (алертов или recording‑правил), которые должны проверяться с одной и той же частотой. Выберите группу из списка или создайте новую.
-
Pending period - время, в течение которого условие должно оставаться нарушенным, чтобы алерт сработал. Если выбрано None, алерт активируется сразу при превышении порога.
-
Keep firing for - время удержания статуса
Firingпосле нормализации метрики. Рекомендуемые значения:15mдля критических алертов,10m- для ошибок и лагов, если выбратьNone, алерт вернётся вNormalсразу, как только метрика снова окажется в норме.При нажатии на + New evaluation group откроется окно с полями:
-
Evaluation group name - укажите или создайте группу правил с единым интервалом оценки. Все алерты в группе проверяются одновременно с заданной частотой.
-
Evaluation interval - укажите частоту, с которой система пересчитывает все правила в группе (например, каждые 5 минут).
-
-
Настройте обработку отсутствия данных и ошибок в выпадающем блоке Configure no data and error handling. Эти настройки критически важны для корректной эскалации инцидентов.
- Alert state if no data or all values are null: установите значение
No Data. Это позволяет отделить проблему с объектом мониторинга (удаление потока, падение экспортера) от реальных эксплуатационных инцидентов и избежать ложных срабатываний. - Alert state if execution error or timeout: установите значение
Error. Это сигнализирует о сбое в инфраструктуре мониторинга (VictoriaMetrics, сеть, vmalert) и позволяет изолировать такие инциденты от проблем функционирования Bercut.
Алерты в состоянияхNo DataиErrorдолжны направляться в канал команды эксплуатации (SRE/DevOps).
- Alert state if no data or all values are null: установите значение
-
Настройте доставку уведомлений в Configure notifications.
- Contact point: выберите заранее созданный канал доставки или создайте новый, нажав View or create contact points.
Если в среде настроены Notification policies, явный выбор Contact point не требуется: маршрутизация будет выполняться автоматически по лейблам.
Для продуктивных сред Bercut рекомендуется использовать Notification policies - это обеспечивает единообразие, упрощает масштабирование и позволяет чётко разделять зоны ответственности между командами.
- Contact point: выберите заранее созданный канал доставки или создайте новый, нажав View or create contact points.
-
Настройте контекст уведомления в блоке Configure notification message. Эти поля важны для сокращения времени диагностики и однозначного понимания инцидента.
-
Summary (optional) - краткая формулировка сути инцидента в одной строке. Должна сразу давать ответ на вопрос «что случилось и насколько серьёзно», без необходимости открывать Grafana.
-
Description (optional) - развёрнутый контекст для диагностики: какая метрика и как агрегируется, какие компоненты и среды затронуты, возможные причины и первые шаги проверки.
-
Runbook URL (optional) - ссылка на пошаговую инструкцию с чёткими действиями, командами для быстрой диагностики, контактами ответственных и условиями, когда алерт можно игнорировать.
-
-
Нажмите Save для сохранения изменений.
Создание правила записи (recording rule)
-
Перейдите в интерфейс создания recording rule.
В меню Grafana выберите Alerting → Alert rules → Recording rules, затем нажмите New recording rule. -
Задайте имена правила и результирующей метрики.
- В поле Name укажите имя recording rule. Это упростит поиск и понимание назначения правила.
- В поле Metric задайте имя новой записываемой метрики - оно будет использоваться в последующих запросах и алертах.
- В Target data source выберите источник данных, где будут храниться результаты.
-
Определите логику правила в блоке Define recording rule.
- В поле Metric выберите нужную метрику из списка или воспользуйтесь поиском.
- В поле Label filters задайте условия отбора по лейблам.
- Select Label - выберите ключ лейбла.
- Select filters - укажите значения и операторы для выбранных лейблов.
-
При необходимости добавьте математические операции в Expressions.
- В секции Reduce задайте агрегацию, которая превратит временные ряды в одно значение на каждый интервал:
- Function - функция агрегации, которая сводит множество точек временного ряда в одно значение за выбранный интервал. Позволяет из потока данных получить понятный показатель для алерта.
Возможные значения:
last- последнее значение за интервал. Подходит для статусов, флагов, текущих показателей, где важна актуальная точка (например, статус доступности компонента).min- минимальное значение. Используют, чтобы отследить «лучший» показатель в группе (например, минимальную задержку среди потоков).max- максимальное значение. Ключевая функция для критических метрик: лаг Kafka, пиковая задержка, пик ошибок. Позволяет не пропустить худший случай - важен для SLA и алертинга.mean(avg) - среднее арифметическое. Подходит для типичных нагрузок и усреднённых показателей (средняя задержка, средняя пропускная способность), когда пики не критичны или уже отфильтрованы.median- медианное значение. Например, при редких резких скачках задержки медиана покажет реальную картину для большинства запросов.count- количество временных рядов/точек. Применяют для подсчёта активных получателей, потоков, нод - полезно для мониторинга масштаба и обнаружения пропажи экземпляров.sum- суммарное значение. Нужно, когда важен общий объём по группе (суммарные ошибки, суммарная нагрузка), но требует осторожности: без жёстких фильтров по лейблам может резко увеличить число временных рядов в хранилище.
- Mode - определяет, как recording rule реагирует, если часть входных временных рядов недоступна или содержит ошибки. Возможные значения:
Strict(рекомендуется) - выдаст результат, если все входные ряды валидны. Если хотя бы один ряд пропал (например, упал экспортер на одной ноде кластера), правило не запишет значение.Replace non‑numeric values- нечисловые значения (NaN, null и т. п.) заменяются на заданное значение (на 0 или последнее валидное).Drop non‑numeric values- нечисловые значения исключаются из расчёта. Агрегация считается только по валидным точкам, ряд становится «разреженным».
- Function - функция агрегации, которая сводит множество точек временного ряда в одно значение за выбранный интервал. Позволяет из потока данных получить понятный показатель для алерта.
Возможные значения:
Нажмите Preview, чтобы убедиться, что на выходе получается один временной ряд с осмысленными значениями.
- В секции Reduce задайте агрегацию, которая превратит временные ряды в одно значение на каждый интервал:
-
Организуйте правило с помощью папок и лейблов в блоке Add folder and labels.
- Folder - позволяет выбрать существующую папку или создать новую. Это упрощает навигацию и разграничение сред. Присвойте recording rule набор лейблов, нажав Add labels. В поле Choose key выберите существующий ключ из списка или введите новый. В поле Choose value введите значение для ключа.
-
Настройте поведение оценки в блоке Set evaluation behavior.
- Выберите или создайте Evaluation group: все правила в группе будут оцениваться с единым интервалом.
- Укажите имя группы Evaluation group name и частоту, с которой система пересчитывает все правила в группе Evaluation interval. Убедитесь, что папка выбрана до настройки группы и интервала - иначе продолжить будет нельзя.
-
Нажмите Save для сохранения изменений.
Создание канала уведомлений
-
Перейдите к созданию Contact Point.
В меню Grafana выберите Alerting → Notification configuration, затем нажмите New contact point.
-
В поле Name задайте понятное имя.
-
В выпадающем списке Integration выберите тип доставки в зависимости от критичности алерта и требований к скорости реакции:
- Мессенджеры и командные чаты: интеграция с корпоративными мессенджерами (в соответствии с реестром ПО).
- Сервисы алертинга и инцидент-менеджмента интеграция с системами управления инцидентами.
- Универсальные/инфраструктурные каналы: Webhook (доставка во внутреннюю систему обработки событий).
- Традиционные каналы связи: электронная почта.
-
Заполните параметры выбранной интеграции:
-
Если выбран традиционный канал связи:
- Поле To - укажите адреса получателей. Можно указать несколько, через запятую, без пробелов после запятой:
ops@bercut.local, oncall@bercut.local.
Примечание:
Не добавляйте более 5–7 адресов в один Contact Point - это снижает риск попадания писем в спам и упрощает аудит.
- Поле To - укажите адреса получателей. Можно указать несколько, через запятую, без пробелов после запятой:
-
Если выбраны мессенджеры и командные чаты:
- URL / Webhook URL - вставьте URL вебхука.
- Chat ID / Room ID - укажите идентификатор чата/канала, куда отправлять сообщения.
-
Если выбраны сервисы алертинга и инцидент‑менеджмента:
- Integration Key / Service Key / API Key / Routing key - вставьте ключ интеграции (не личный токен).
- URL - адрес эндпоинта API, куда Grafana шлёт запросы.
- Severity / Priority - укажите уровень критичности по умолчанию:
critical- для падения потоков, недоступности ESB, критического лага Kafka.warning- для предупреждений и приближающихся порогов.
- Client / Client URL - укажите источник и ссылку для быстрого перехода.
-
Если выбраны каналы персональной доставки:
- User Key - персональный токен пользователя.
- Token - токен приложения.
- API URL - базовый URL API или полный URL.
- API Secret - секретный ключ.
- Corp ID - иденификатор вашей корпоративной учётной записи.
- Нажмите Save contact point для сохранения изменений.
Отключение (заглушение) активных алертов
-
Перейдите к В меню Grafana выберите Alerting → Silences, затем нажмите кнопку Create silence.
Вкладка Silences позволяет временно остановить уведомления по одному или нескольким правилам алертов - например, на время плановых работ, деплоя или отладки компонента Bercut ESB. Заглушение работает на уровне Alertmanager и не отключает сами правила (Alert rules остаются активными, но не отправляют уведомления).
-
Выберите нужный экземпляр Alertmanager в правой части страницы.
Укажите тот Alertmanager, к которому относятся алерты, которые хотите заглушить. Заглушение применяется только к выбранному экземпляру. -
Задайте период действия заглушения.
В поле Silence start and end укажите период заглушения, а в поле Duration - длительность, например2h,4h,1d. -
Уточните, какие именно алерты будут заглушены, через матчеры лейблов.
В блоке Refine affected alerts добавьте хотя бы один matcher:- Label - укажите имя лейбла (например,
alertname,component,environment,flow). - Value - задайте значение (например,
kafka_lag_high).
Нажмите Add matcher, чтобы добавить дополнительные условия.
Чем точнее набор лейблов, тем безопаснее: заглушите только нужные алерты, а не все подряд.
- Label - укажите имя лейбла (например,
-
Посмотрите, какие алерты попадут под заглушение.
Ниже блока матчеров есть секция Affected alert instances.
Как только вы добавили валидный набор матчеров, в этой секции появится список алертов, которые будут затронуты.Важно!
Обязательно проверьте список: если там есть лишние алерты - уточните матчеры (добавьте
environment,componentилиflow) для лучшей защиты от случайного заглушения важных инцидентов. -
Добавьте комментарий с причиной заглушения.
В поле Comment кратко опишите, зачем создаётся Silence. -
Сохраните заглушение.
Нажмите кнопку Save silence. Silence сразу вступит в силу для выбранных алертов.Проверить активные заглушения можно на той же вкладке Silences: там видно, какие лейблы попали под заглушение, период действия и комментарий.
Работа с разделом Settings
Раздел позволяет управлять экземплярами Alertmanager: включать приём Grafana‑управляемых алертов, редактировать конфигурации и добавлять новые.
-
Перейдите в настройки Alertmanager.
В меню Grafana выберите Alerting → Settings, затем откройте вкладку Alertmanagers. -
Ознакомьтесь со списком экземпляров.
Вы увидите карточки для каждого Alertmanager:- Built‑in Alertmanager (Grafana built‑in) - встроенный экземпляр Grafana.
- Другие Alertmanagers - внешние экземпляры (на базе Prometheus/Mimir), используемые для разных сред.
-
Проверьте статус приёма Grafana‑алертов.
Для каждого экземпляра отображается строка:- Receiving Grafana‑managed alerts - приём включён, Grafana может слать алерты в этот Alertmanager.
- Not receiving Grafana managed alerts - приём отключён: алерты не будут доставлены, даже если в Notification policies выбран этот экземпляр.
-
Включите приём алертов, если требуется.
Для нужного экземпляра (например,alertmanager-1для PROD) нажмите кнопку Enable.Важно!
Включение не меняет конфигурацию самого Alertmanager - оно разрешает Grafana отправлять в него алерты. Если экземпляр находится в другой среде (Mimir/Prometheus), убедитесь, что сеть и авторизация уже настроены.
-
При необходимости отредактируйте конфигурацию.
Нажмите Edit configuration рядом с нужным экземпляром. В форме можно скорректировать:- URL (адрес API Alertmanager)
- настройки авторизации
- таймауты и прочие параметры подключения.
После правки обязательно нажмите Save.
-
Проверьте конфигурацию.
Для встроенного или внешнего экземпляра нажмите View configuration, чтобы увидеть текущие параметры. -
При необходимости отключите экземпляр.
Если экземпляр временно не должен получать алерты от Grafana, нажмите Disable. Это не удаляет экземпляр, а только запрещает Grafana слать в него алерты. Полезно для изоляции среды при тестировании.
Добавление нового Alertmanager
-
Перейдите в настройки Alertmanager.
В меню Grafana выберите Alerting → Settings, затем откройте вкладку Alertmanagers. Нажмите Add new Alertmanager в правом верхнем углу страницы, затем Add new data source. -
Задайте имя и тип реализации.
- Name - укажите понятное имя, по которому сразу ясно, что это за экземпляр.
- Implementation - выберите тип, который соответствует вашей инфраструктуре.
Возможные значения:- Mimir - распределённый Alertmanager для высоконагруженных и мультитенантных сценариев. Подходит для сред с большим потоком алертов и требованиями к отказоустойчивости.
- Cortex - масштабируемое решение для мультитенантной среды. Выбирайте, если в вашей инфраструктуре Bercut Cortex управляет алертами.
- Prometheus - «коробочный» Alertmanager. Оптимален для небольших контуров, где не нужна сложная распределённость. Использует стандартный набор эндпоинтов и настроек.
- Укажите URL подключения.
- URL - введите полный адрес API Alertmanager, доступный с бэкенда Grafana (Server access):
- Убедитесь, что:
- URL начинается с
http://илиhttps://; - порт указан явно;
- домен/IP доступен из сети, где работает Grafana backend (не только из браузера пользователя).
- URL начинается с
4. Настройте доступ.
Режим доступа Server (default)
-
В блоке Allowed cookies перечислите имена cookies, которые должны передаваться к Alertmanager: вводите каждое имя отдельной строкой и нажимайте Add.
-
Задайте таймаут HTTP‑запроса. В поле Timeout укажите значение в секундах - для контуров Bercut оптимально
15–20 с. Меньшие значения могут давать ложные сбои при временных задержках кластера; большие - затягивают диагностику инцидентов. -
Включите нужные переключатели в блоке Auth:
- Basic auth - активируйте, если используется базовая HTTP‑аутентификация; после включения появятся поля для логина и пароля.
- With Credentials - работает в связке с Basic auth. Определяет, будут ли учётные данные (cookies, заголовки аутентификации) отправляться вместе с межсайтовыми (cross‑site) HTTP‑запросами.
- TLS Client Auth - активируйте при использовании mTLS; после включения станут доступны поля для загрузки клиентского сертификата и ключа.
- With CA Cert - добавьте корневой сертификат (CA), если Alertmanager использует самоподписанный TLS‑сертификат.
- Skip TLS Verify - отключает проверку сертификата и снижает безопасность. Допустимо только в изолированных DEV‑контурах.
- Forward OAuth Identity - оставьте выключенным: для Alertmanager в сценариях Bercut эта опция практически не применяется.
-
Добавьте кастомные HTTP‑заголовки, если нужно.
Нажмите Add header, затем укажите пару «Имя - Значение». -
Проверьте подключение.
Нажмите кнопку Save & test. Тест выполняется с бэкенда Grafana - это единственный достоверный способ убедиться, что соединение реально работает в продуктивной среде.
Если тест не прошёл, проверьте:- доступность URL с сервера Grafana
- корректность учётных данных, сертификаты и сетевые правила. При необходимости используйте логи Grafana backend.
Режим доступа Browser
Browser может использоваться для:
- Разовых тестов доступности Alertmanager с рабочей станции.
- Отладки UI в изолированных DEV‑контурах, где нет требований к безопасности и доставке алертов.
Не подходит для эксплуатации: алерты и политики работают только при выборе режима Server.
Включите нужные переключатели в блоке Auth: Basic auth и With Credentials. Описание приведено выше.
Нажмите Save & test. Тест запускается из браузера и показывает, доступен ли Alertmanager с вашей рабочей станции.