Алерт
Алерт — периодически вычисляемый набор последовательных именованных запросов.
Набор запросов вычисляется раз в минуту. Полученное значение запроса, указанного в настройках, сравнивается с заранее заданными пороговыми значениями.
Если результат запроса, указанного в настройках, достигает порогового значения, Monitoring переводит алерт в статус Alarm
или Warning
и оповещает пользователя по каналу уведомления.
Статусы алертов
Алерт может находиться в одном из следующих статусов:
Статус | Описание |
---|---|
OK |
Значение метрики в пределах установленной нормы. |
Warning |
Значение метрики достигло порога предупреждения Warning . |
Alarm |
Значение метрики достигло порога критического статуса Alarm . |
No data |
Для вычисления функции алерта не хватает данных метрик. |
Error |
Значение алерта вычислить невозможно. |
История вычислений алерта
История вычислений алерта представлена в виде графика, состоящего из столбцов, цвет которых зависит от статуса алерта на момент его вычисления.
Для навигации по истории можно выбрать один из предустановленных масштабов отображения:
1h
— 1 час.1d
— 1 день.1w
— 1 неделя.1m
— 1 месяц.
Минимальный масштаб отображения истории — 1h
: каждый столбец на графике показывает статус алерта в соответствующую минуту. При больших масштабах цвет столбца составляется из статусов, вычисленных в этом интервале.
При нажатии на столбец загружается информация о настройках алерта в выбранный момент вычисления.
Примечание
При загрузке информации из истории вычисления производится повторный расчет статуса алерта, который отображается в поле Статус вычисления алерта. Статус алерта в истории может не совпадать с текущим результатом вычисления из-за особенностей прореживания исторических данных или задержек при поставке данных в Monitoring.
Настройки алерта
Настройки алерта задаются при его создании. После сохранения алерта их можно изменить.
Запросы
Набор запросов, которые возвращают линию или набор линий.
Можно:
- отключить вычисление запроса, нажав кнопку
и выбрав Деактивировать. Ссылки на запросы, которые не вычисляются, приводят к ошибкам. - скрыть результаты вычисления запроса на графике, нажав кнопку
. - отобразить результаты вычисления запроса на графике, нажав кнопку
.
Условия срабатывания
Запрос для проверки
Имя запроса, к результату вычисления которого применяется функция агрегации.
Функция агрегации
Функция агрегации применяется к результату вычисления запроса для проверки.
Функция агрегации | Описание |
---|---|
Хотя бы одно значение | Хотя бы одно из значений метрики в запросе превышает заданные пороги в указанном периоде. |
Все значения | Все значения метрики в запросе превышают заданные пороги в указанном периоде. |
Среднее | Вычисляет среднее значение в указанном периоде для каждой метрики. Например, если запрос возвращает две метрики, Monitoring для каждой из них вычисляет среднее значение в указанном окне. |
Количество | Вычисляет количество значений метрики в указанном периоде. |
Последнее значение | Использует последнее значение метрики в указанном периоде. Если значения метрики не удалось получить, Yandex Monitoring меняет статус алерта на No data . |
Максимум | Использует максимальное значение метрики в указанном периоде. |
Минимум | Использует минимальное значение метрики в указанном периоде. |
Сумма | Вычисляет сумму значений за указанный период для каждой метрики. |
Например, чтобы следить за последним значением метрики, которое было в течение последних 15 минут, необходимо выбрать функцию Последнее и задать окно вычисления 15m
.
Функция сравнения
Функция сравнения применяется к результату вычисления функции агрегации и пороговым значениям Warning и Alarm. Если агрегированное значение удовлетворяет пороговому, Monitoring изменяет статус алерта.
Warning
Пороговое значение, при достижении которого алерт перейдет в статус Warning
.
Alarm
Пороговое значение, при достижении которого алерт перейдет в статус Alarm
.
Окно вычисления
Временной период, в котором рассчитывается функция агрегации. Окно позволяет исключить резкие изменения значения метрик, реагируя только на изменения за больший промежуток времени.
Можно выбрать одно из предустановленных значений или задать свое в следующем формате:
1h
— 1 час.1m
— 1 минута.1s
— 1 секунда.
Например, значение 3m 45s
задает временное окно в 3 минуты 45 секунд.
Задержка вычисления
Cдвиг временного окна назад во времени в секундах. По умолчанию равен 0. Позволяет исключить неожиданное срабатывание алерта в тех случаях, когда в запросах используются метрики, которые собираются с разным интервалом. Можно выбрать одно из предустановленных значений или задать свое аналогично окну вычисления.
Обработка отсутствия данных
Политики обработки устанавливают статус алерта, когда во временном окне нет данных или отсутствуют метрики по заданному критерию. Политики применяются перед проверкой условий срабатывания.
Вы можете обработать отсутствие метрик или точек во временном окне двумя способами:
- Сменить статус алерта с помощью политик Отсутствие метрик по селектору или Отсутствие точек в окне вычисления.
- Обработать вручную.
Примечание
Чтобы алерты переходили в статус No data
при отсутствии метрик или точек во временном окне, выставите для всех типов алертов значение политик No data
. Использование Default
и Manual
не рекомендуется, так как это требует дополнительной ручной обработки.
Отсутствие метрик по селектору
Политика определяет статус алерта, если хотя бы по одному селектору не было найдено метрик. Например, метрик не существует или они были удалены как устаревшие — TTL.
Возможные значения:
-
По умолчанию
— значение по умолчаниюNo data
для всех типов алертов. -
OK
— переводит алерт в статусOK
. -
Warn
— переводит алерт в статусWarning
. -
Alarm
— переводит алерт в статусAlarm
. -
No data
— переводит алерт в статусNo data
. -
Manual
— поддерживается только для алертов с типомВыражение
и передает управление программе алерта для обработки вручную.Если для такого алерта хотя бы по одному селектору не нашлось метрик и не сработала ни одна функция управления статусом, алерт перейдет в состояние
OK
.
Отсутствие точек в окне вычисления
Политика определяет статус алерта, если хотя бы для одной из метрик во временном окне нет точек.
Для пороговых алертов, настроенных на несколько метрик, предикаты выполняются независимо для каждой метрики. Итоговый статус алерта — агрегация статусов для каждой из метрик в следующем порядке: No data
< OK
< Warning
< Error
< Alarm
. Если политика Отсутствие точек в окне вычисления
переведет такой пороговый алерт, например, в статус Warning
из-за отсутствия точек в одной линии, а для другой линии выполнится предикат, переводящий алерт в статус Alarm
, то итоговый статус алерта будет Alarm
.
Возможные значения:
Default
— значение по умолчаниюNo data
для всех типов пороговых алертов иManual
для алертов с типомВыражение
.OK
— переводит алерт в статусOK
.Warning
— переводит алерт в статусWarning
.Alarm
— переводит алерт в статусAlarm
.No data
— переводит алерт в статусNo data
.Manual
— передает управление предикатам или программе алерта для обработки вручную.
Если для алерта с типом Выражение
в параметре Отсутствие точек в окне вычисления
указано значение Manual
или Default
, во временном окне нет точек и в программе алерта не сработала никакая функция управления статусом, то алерт перейдет в состояние OK
. Рекомендуется использовать значение No data
для политики Отсутствие точек в окне вычисления
. Если указано значение Manual
или Default
, отсутствие точек обрабатывается вручную.
Ручная обработка отсутствия данных
Если для любой политики указано значение Manual
, управление будет передано предикатам алерта или программе.
Не рекомендуется использовать значение Manual
— это усложняет программу алерта. В большинстве случаев достаточно воспользоваться значением политики No data
.
Отсутствие метрик
Чтобы вручную обработать отсутствие метрик в алерте типа Выражение
, воспользуйтесь функцией size
и функциями управления статусом — вы получите количество метрик по заданному селектору.
Пример программы, которая переведет алерт в статус OK
, если по селектору, указанному в переменной xx5
, нашлось 0 метрик:
let xx5 = {
project="solomon",
cluster="production",
service="gateway",
endpoint="*",
code="5*",
method="*",
host="cluster",
name="http.server.requests.status"
};
...
ok_if(size(xx5) == 0);
...
Отсутствие точек
Чтобы вручную обработать отсутствие точек, воспользуйтесь функцией count
и функциями управления статусом — вы получите количество точек для заданного селектора во временном окне.
Пример программы, которая переведет алерт в статус No data
, если для метрики в переменной source
во временном окне нет точек:
let source = {
project="solomon",
cluster="production",
service="alerting",
endpoint="api.telegram.org/send*",
host="cluster",
name="http.client.call.inFlight"
};
...
no_data_if(count(source) == 0);
...