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

SML (RTC)

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

Где применяется

Выражения на SML (RTC) задаются в следующих полях редактора правил и активных списков:

  • Условие срабатывания декларативного правила — проверяется на каждом событии (см. Декларативные правила)
  • Предварительная фильтрация правила агрегации и Фильтр отдельной метрики (см. Правила агрегации)
  • Условие срабатывания правила агрегации — работает не над полями событий, а над именами метрик
  • Предварительная фильтрация императивного правила, Условие стадии типа Событие и Событие, которое отменяет инцидент стадии типа Отсутствие (см. Императивные правила)
  • Фильтр потока активного списка — отбирает события для автозаполнения (см. Активные списки)

Все перечисленные поля, кроме Условия срабатывания правила агрегации, вычисляются над полями входящего события; в остальном поведение диалекта одинаково независимо от того, в каком из этих полей записано выражение.

Обращение к полям события

Поле события записывается путем через точку. Путь, начинающийся с @, пишется без кавычек. Если имя поля содержит пробел или другие символы вне обычного набора, его берут в одинарные кавычки:

event.code == "4625"
@timestamp != nil
'user name' == "admin"
'x-forwarded-for' != nil
Обратите внимание!

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

Имя поля, совпадающее с именем функции, тоже нужно взять в одинарные кавычки — иначе выражение будет отвергнуто при сохранении. Это касается только первого сегмента пути: match.name допустимо, а одиночное now — нет, его надо записать как 'now'.

Логические имена полей, заданные Маппингом полей правила, используются в выражении наравне с физическими — см. Потоковые задачи.

Операторы

КатегорияОператоры
Логическиеand, or, not и их эквиваленты &&, ||, !
Сравнение==, !=, <, <=, >, >=
Арифметические+, -, *, /, %
Группировкакруглые скобки

Литералы

ЛитералЗапись
Строкадвойные кавычки: "4625"
Число4625, 3.5, -1
Логическоеtrue, false
Отсутствие значенияnull