Настроить алерты
Чтобы получать уведомления о росте числа ошибок при обращении к приложению, настройте алерт в Monium. Алерт проверяет значения метрик и меняет статус при достижении заданных порогов. Уведомления о смене статуса можно получать по электронной почте или в мессенджере.
Чтобы настроить алертинг:
- Создайте канал уведомлений.
- Выберите метрики для контроля.
- Создайте алерт.
В примере алерт отслеживает долю ответов HTTP 503 Service Unavailable от общего количества запросов.
Рост числа ответов 503 может сопровождать сбои в инфраструктуре или DDoS-атаки. Чтобы определить причину, изучите логи балансировщика и бэкендов.
Для расчета используются запросы:
A— общее количество запросов в секунду.B— количество ответов с кодом503в секунду.C— доля таких ответов в процентах:100 * B / A.
Для одного алерта задаются два порога:
Warning— доля ответов503составляет не менее 30%.Alarm— доля ответов503составляет не менее 50%.
Алерт меняет статус, если доля ошибок остается не ниже соответствующего порога в течение всего окна вычисления — 30 секунд. Подберите пороги и длительность окна с учетом требований к вашему приложению.
Для выполнения инструкции нужны роли на каталог с балансировщиком:
- monium.metrics.reader — для чтения метрик.
- monium.alerts.editor — для создания алерта.
- monium.channels.editor — для создания канала уведомлений.
Создание канала уведомления
-
Перейдите
в Monium. -
На панели сверху выберите проект каталога с балансировщиком:
folder__<идентификатор_каталога>. В этом проекте будут созданы канал уведомлений и алерт. -
Слева выберите
Алерты и SLO → Способы уведомления. -
Нажмите Создать → Канал уведомления.
-
Укажите параметры канала:
- Имя — произвольное имя канала.
- Метод — метод отправки уведомлений.
- Получатели — получатели уведомлений.
Примечание
Чтобы получать уведомления, пользователь должен:
- иметь роль monium.viewer на каталог, в котором настроен алерт;
- в настройках
консоли управления:- включить опцию Мониторинг;
- в зависимости от метода уведомления указать адрес электронной почты, номер телефона, добавить аккаунт Telegram или Яндекс Мессенджер.
-
Нажмите Создать.
Выбор метрик для контроля
Используйте метрику load_balancer.requests_count_per_second: для запроса A задайте code = total, для B — code = 503. В обоих запросах укажите один балансировщик и одинаковые значения остальных меток. Функция series_sum() суммирует выбранные временные ряды, чтобы получить по одному значению A и B для каждого момента времени.
Создание алерта
-
На главной странице Monium слева выберите
Алерты и SLO → Алерты. -
Вверху справа нажмите Создать алерт → Пользовательский.
-
Укажите название алерта, например,
unavailable_service. -
В блоке Настройки алерта опишите запрос для получения
A:-
В строке запроса укажите параметры:
project=folder__<идентификатор_каталога>;cluster=default;service=__application-load-balancer__;name=load_balancer.requests_count_per_second;load_balancer=<идентификатор_балансировщика>;code=total.
Для меток
http_router,virtual_host,route,backend_group,backendиzoneукажите*. -
Задайте функцию обработки данных
series_sum().
-
-
Нажмите Добавить запрос.
-
Опишите запрос для получения
B:- Укажите те же метки, что в запросе
A, но замените значение меткиcodeна503. - Последовательно примените функции
series_sum()иreplace_nan(0).
- Укажите те же метки, что в запросе
-
Нажмите Добавить запрос.
-
Опишите запрос
Cдля получения долиBотAв процентах:- Переключите строку запроса в текстовый режим
. - В строке запроса введите
100 * B / A.
- Переключите строку запроса в текстовый режим
-
В блоке Условия срабатывания укажите:
- Запрос для проверки —
C. - Функция агрегации — Все значения.
- Функция сравнения — Больше или равно.
- Warning —
30(предупреждение). - Alarm —
50(критический уровень). - Окно вычисления —
30 секунд. - Задержка вычисления —
15 секунд.
- Запрос для проверки —
-
В блоке Обработка отсутствия данных выберите статус
No dataдля отсутствия метрик и точек данных.Если запросов нет (
A = 0), доля ошибок не определена. По этому алерту нельзя делать вывод о доступности приложения в такой период. -
(Опционально) В блоке Аннотации добавьте информацию, которую следует записывать при срабатывании алерта.
-
В блоке Уведомления добавьте канал для отправки уведомления.
-
Проверьте вычисление алерта на периоде, в котором есть запросы к балансировщику. Убедитесь, что запрос
Cвозвращает один временной ряд со значениями от 0 до 100. -
Нажмите Создать.