Перейти к основному содержимому
Версия: 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: оно вычисляется после того, как метрики окна посчитаны, и решает, формировать ли сработку.

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

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