Перейти к основному содержимому
Версия: 6.1

Правила агрегации

Правило агрегации отличается от декларативного правила тем, где именно проверяется порог: в декларативном правиле порог сравнивается с числом событий, совпавших с условием, а в правиле агрегации — со значением агрегата, вычисленного по событиям окна, например суммой, средним или числом уникальных значений.

Корреляция

На вкладке Корреляция определите окно, в котором коррелятор собирает данные для агрегата:

  1. В поле Предварительная фильтрация опишите выражение на диалекте SML (RTC) — событие должно ему соответствовать, чтобы попасть в окно агрегации
  2. Выберите Поля группировки — чипы полей, по которым правило ведет отдельный агрегат: для каждого сочетания значений этих полей вычисляется собственный набор метрик и формируется отдельная сработка
  3. Задайте Временное окно двумя полями — Длительность и Единица: интервал, за который коррелятор накапливает события для расчета метрик
  4. При необходимости включите переключатель Настройка подавления и заполните открывшийся блок Подавление полями Длительность и Единица — так же, как в декларативном правиле (см. Декларативные правила): после сработки повторные сработки той же группы подавляются на заданный срок

Метрики

В блоке Метрики задайте один или несколько агрегатов, по значениям которых правило принимает решение о сработке:

  1. Нажмите кнопку Метрика, чтобы добавить блок метрики
  2. Заполните Название — имя, под которым значение метрики становится доступно в поле Условие срабатывания и в документе сработки
  3. Выберите Функцию — список доступных функций приведен ниже
  4. Укажите Поле — поле события, по которому вычисляется функция. Поле необязательно только для функций count и rate; если оно все же указано для них, в расчет попадают только события, где это поле присутствует
  5. При необходимости заполните Фильтр — собственное условие отбора событий именно для этой метрики, на диалекте SML (RTC). Если фильтр не задан, метрика считается по всем событиям, прошедшим Предварительную фильтрацию

Функции метрик агрегации

Функции агрегации

Поле Функция предлагает функции в следующем порядке:

ФункцияЧто вычисляетПолеТип результата
countчисло событий в окнене требуетсяцелое
sumсумму значений поляобязательночисло
minнаименьшее значение поляобязательночисло
maxнаибольшее значение поляобязательночисло
avgсреднее значение поляобязательночисло
dcчисло различных значений поляобязательноцелое
valuesсписок различных значений поляобязательносписок
medianмедиану значений поляобязательночисло
p9595-й процентиль значений поляобязательночисло
p9999-й процентиль значений поляобязательночисло
varianceдисперсию значений поляобязательночисло
stddevсреднеквадратичное отклонение значений поляобязательночисло
firstзначение поля из первого события окнаобязательнокак в событии
lastзначение поля из последнего события окнаобязательнокак в событии
earliestнаименьшее числовое значение поля — как правило, самую раннюю временную меткуобязательночисло
latestнаибольшее числовое значение поля — как правило, самую позднюю временную меткуобязательночисло
rateсреднюю частоту событий: число событий, деленное на длину окна в секундахне требуетсячисло

Различия, важные при выборе функции:

  • first и last берут значение поля как есть, в порядке поступления событий, и работают с любым типом. earliest и latest сравнивают значения как числа и возвращают крайние из них, поэтому применимы к временным меткам и другим числовым полям, но не к строкам
  • min и max дают тот же результат, что earliest и latest; отдельные имена существуют ради читаемости правил над временными полями
  • события, в которых поле отсутствует или не приводится к числу, в расчет числовых функций не попадают
  • число различных значений, которые отслеживают dc и values в одной группе, ограничено кластерной настройкой correlation.max_aggregation_set_per_group (по умолчанию 100000) — см. Кластерные настройки. После достижения предела новые значения не учитываются

Условие срабатывания

В поле Условие срабатывания задайте выражение над именами метрик, например total >= 1000000000: оно вычисляется после того, как метрики окна посчитаны, и решает, формировать ли сработку.

Условие работает в пространстве имен метрик

Условие срабатывания вычисляется не над полями событий, а над именами, заданными в поле Название каждой метрики. Маппинг полей, описанный в статье Правила, на это условие не распространяется.