Типы оповещений
1. Оповещения на основе поиска
1
2
Создайте оповещение
В панели создания оповещения вы можете:- Задать имя для сохраненного поиска, связанного с оповещением.
- Установить порог и указать, сколько раз он должен быть достигнут в течение заданного периода. Пороги также можно использовать как верхние или нижние границы. Период здесь также определяет, как часто будет срабатывать оповещение.
- Указать значение
grouped by. Это позволяет применять к поиску агрегацию, например поServiceName, и тем самым запускать несколько оповещений на основе одного и того же поиска. - Выбрать пункт назначения вебхука для уведомлений. Вы можете добавить новый вебхук прямо из этого представления. Подробности см. в разделе Добавление вебхука.
2. Оповещения для графиков на панели мониторинга
Чтобы создать оповещение для визуализации на панели мониторинга, панель мониторинга должна быть сохранена.
1
Откройте диалог редактирования графика
Откройте меню настроек графика и нажмите кнопку оповещения. Откроется диалог редактирования графика.2
Добавьте оповещение
Выберите Add Alert.3
Задайте условия оповещения
Задайте условие (>=, >, <=, <, =, !=, <= x >=, > or <), порог, длительность и вебхук. Длительность здесь также определяет, как часто будет срабатывать оповещение.Вы можете добавить новый вебхук прямо из этого окна. Подробности см. в разделе Добавление вебхука.Добавление вебхука
Add New Webhook.
Откроется диалог создания вебхука, где можно создать новый вебхук:
Имя вебхука обязательно, а описание — необязательно. Остальные настройки, которые нужно заполнить, зависят от типа сервиса.
Обратите внимание, что для ClickStack с открытым исходным кодом и ClickStack Cloud доступны разные типы сервисов. См. Интеграции по типам сервисов.
Интеграции по типам сервисов
- Slack: отправка уведомлений напрямую в канал через вебхук или API.
- PagerDuty: маршрутизация инцидентов для дежурных команд через API PagerDuty.
- Вебхук: подключение оповещений к любой пользовательской системе или процессу через универсальный вебхук.
Интеграции только в ClickHouse CloudИнтеграции через Slack API и PagerDuty поддерживаются только в ClickHouse Cloud.
- URL вебхука. Например:
https://hooks.slack.com/services/<unique_path>. Подробности см. в документации Slack.
- Токен бота Slack. Подробности см. в документации Slack.
- Ключ интеграции PagerDuty. Подробности см. в документации PagerDuty.
- URL вебхука
- Заголовки вебхука (необязательно)
- Тело вебхука (необязательно). Сейчас в теле поддерживаются переменные шаблона
{{title}},{{body}}и{{link}}.
Управление оповещениями
- Красная полоса: во время этой проверки пороговое условие было выполнено, и оповещение сработало (уведомление отправлено)
- Зелёная полоса: оповещение было проверено, но пороговое условие не выполнилось (уведомление не отправлено)
Удаление оповещения
Remove Alert удалит оповещение с диаграммы.
SQL-оповещения для графиков
Поддерживаемые типы диаграмм
Другие типы SQL-диаграмм (Table, Pie, Heatmap и т. д.) не поддерживают оповещения.
Создание SQL-оповещения
1
Создайте или откройте SQL-график на панели мониторинга
На сохранённой панели мониторинга либо создайте новый график в режиме SQL, либо откройте существующий SQL-график для редактирования.В качестве типа отображения выберите Line, Stacked Bar или Number.2
Добавьте оповещение
В разделе оповещений редактора графика выберите Add Alert. Настройте:- Тип порога:
>=(больше или равно),>(больше),<=(меньше или равно),<(меньше),=(равно),!=(не равно),<= x >=(между), или> or <(вне диапазона) - Значение порога: Числовое значение для сравнения
- Interval: Как часто проверяется оповещение (1m, 5m, 15m, 30m, 1h, 6h, 12h или 1d). Это также задаёт временное окно для каждой проверки.
- Webhook: Канал уведомлений, который используется при срабатывании оповещения. См. Добавление вебхука.
3
Сохраните панель мониторинга
Сохраните панель мониторинга, чтобы активировать оповещение. После этого оповещение начнёт выполняться с настроенным интервалом.Как интерпретируются результаты запроса
- Столбец значения: В качестве значения оповещения используется последний числовой столбец в выражении
SELECT. Если запрос возвращает несколько числовых столбцов (например,count, avg_latency, p99_latency), с порогом сравнивается только последний из них (p99_latency). - Столбец временной метки: Для графиков временных рядов (Line и Stacked Bar) система определяет столбец Date/DateTime в результатах как временной бакет (то есть ось x на графике временного ряда). Значение в столбце значения для каждого временного бакета оценивается относительно порога независимо, и если значение в любом временном бакете превышает настроенный порог, оповещение сработает.
- Столбцы группировки: Любые столбцы, которые не являются числовыми и не содержат временную метку (например,
ServiceName,Environment), рассматриваются как измерения группировки. Если группы присутствуют, каждая уникальная комбинация значений групп отслеживается отдельно, и для неё формируется отдельное оповещение. ClickStack отправит оповещение для каждой группы, значение которой превышает настроенный порог. Группы доступны только для графиков временных рядов.
Параметры запроса и макросы
Обязательные и рекомендуемые параметры
{intervalSeconds:Int64}, {intervalMilliseconds:Int64}, $__timeInterval(col) или $__timeInterval_ms(col)). Во время выполнения оповещения он будет заменён на период, настроенный для этого оповещения.
Запросы, используемые для оповещений, должны включать фильтр временного диапазона ({startDateMilliseconds:Int64} и {endDateMilliseconds:Int64} или $__timeFilter(col) и т. д.). Независимо от того, есть ли в запросе фильтр временного диапазона, запрос оповещения будет выполняться для периода, настроенного для этого оповещения. Если фильтр временного диапазона отсутствует, то при каждом выполнении запрос будет считывать весь временной диапазон, доступный в исходной таблице.
Примеры запросов для оповещений
Доля ошибок по сервисам (временной ряд)
>= 5 (срабатывает, когда уровень ошибок достигает 5%)
В этом запросе ServiceName — нечисловой столбец и не временная метка, поэтому каждый сервис отслеживается как отдельная группа оповещения. Оповещение срабатывает независимо для каждого сервиса.
Обнаружение аномалий с помощью отстающего среднего (временной ряд)
> 0 (срабатывает, когда число ошибок превышает скользящий базовый уровень)
Обратите внимание: запрос выбирает 30 интервалов до начала диапазона дат, чтобы инициализировать расчёты в скользящем окне, а затем фильтрует итоговый вывод, оставляя только период оценки.
Распространённые сценарии оповещений
All Error Events и HTTP Status >= 400, чтобы получать уведомления, когда
число ошибок становится слишком большим.
Медленные операции: Вы также можете настроить поиск медленных операций (например,
duration:>5000), а затем создать оповещение, если
таких медленных операций становится слишком много.
Пользовательские события: Вы также можете настроить оповещения для команд,
работающих с клиентами, чтобы они получали уведомления, когда регистрируются новые пользователи
или выполняется критически важное действие пользователя.