Условия правил
В блоке «Если» правила обработки выберите данные, операцию и значение. Условия читают исходный запрос до преобразования текста.
Все или хотя бы одно
«Все условия» требует совпадения каждого пункта. Например, environment равно production и event.type равно service_failed.
«Хотя бы одно условие» подходит для альтернатив: текст содержит ERROR или текст содержит CRITICAL. Одно обычное правило содержит одну группу; вложенных сочетаний AND/OR нет. Для более сложного маршрута используйте несколько правил с продуманным порядком или подготовьте признак на стороне отправителя.
Исходный текст тела
| Операция | Пример | Когда совпадёт |
|---|---|---|
| Содержит | ERROR | В теле есть точный фрагмент ERROR |
| Точно равен | build_failed | Всё тело равно build_failed |
| Не равен | build_ok | Всё тело отличается от build_ok |
| Соответствует регулярному выражению | ^ERROR\b | Тело начинается с ERROR, после которого граница слова |
Обычные текстовые сравнения учитывают регистр, пробелы и переносы. build_ok и build_ok с переводом строки в конце различаются; error не содержит ERROR. При отправке теста используйте --data-binary, чтобы сохранить тело.
«Не равен» — точное неравенство всего тела. Если нужны только ошибки, положительное условие «Содержит ERROR» обычно точнее, чем «Не равен OK».
Исходный JSON
Отправляйте корректный JSON с Content-Type: application/json. В поле «Путь JSON» укажите путь, например event.status или items.0.name. Точка разделяет уровни, индекс массива начинается с нуля. Ключ с точкой внутри таким путём адресовать нельзя.
| Операция | Настройка | Пример совпадения |
|---|---|---|
| Поле существует | Путь event.status | Поле присутствует, включая значение null |
| Поле равно | Путь event.status, тип «Строка», значение failed | {"event":{"status":"failed"}} |
| Поле не равно | Тот же путь и значение | {"event":{"status":"completed"}} |
| Поле входит в список | Путь event.status, строки failed, timeout | Любое из двух значений |
Выбирайте тип: строка, число, Boolean или null. Строка "1" отличается от числа 1, а строка "true" — от логического true. Числа 1 и 1.0 сравниваются как равные. Регистр строк и пробелы значимы.
Отсутствующее поле и null
Для условий event.status равно / не равно строке failed:
| Вход | Равно | Не равно | Поле существует |
|---|---|---|---|
{"event":{"status":"failed"}} | Да | Нет | Да |
{"event":{"status":"completed"}} | Нет | Да | Да |
{"event":{"status":null}} | Нет | Да | Да |
{"event":{}} | Нет | Нет | Нет |
{"event":{"status":{}}} | Нет | Нет | Да |
| Не-JSON запрос | Нет | Нет | Нет |
«Поле не равно» не ловит отсутствующий путь. Равно, не равно и входит в список сравнивают скалярные значения или null; объект и массив не совпадают с этими операциями. Если значение должно быть именно null, выберите тип null. Если нужны все неизвестные события, настройте правило по умолчанию.
Числовых операций «больше» и «меньше» нет. Для температуры выше порога источник должен передать готовый тип события или флаг, например event.type = temperature_high либо over_limit = true.
Content-Type
Выберите «Content-Type» → «Равен» или «Не равен» → text/plain, text/markdown либо application/json. Для поддерживаемого типа параметры вроде ; charset=utf-8 не меняют базовый формат.
Условие «Не равен application/json» подходит для поддерживаемых текстовых форматов. Оно не превращает произвольный MIME-тип в допустимый: формат запроса проверяется перед правилами.
Регулярные выражения
Используется PCRE2. Вводите выражение без обрамления /.../ и флагов после него. Регистр задаётся переключателем «Учитывать регистр»; сервер использует режим Unicode.
Например, ^ERROR\b совпадает с ERROR disk full, но не с NOTICE ERROR. При выключенном учёте регистра совпадёт и error disk full.
Условие с регулярным выражением только проверяет текст. Чтобы сохранить именованные группы как переменные для шаблона, нужна отдельная операция «Извлечь переменные регулярным выражением» в действиях.
Проверьте границы
Через «Проверить на примере» прогоните ожидаемое событие, альтернативное событие, отсутствующее поле и значение другого типа. Смотрите выбранную ветку и порядок проверок: подходящее правило может не выполниться, если раньше совпало другое.
Полный пример с несколькими входами — JSON-маршрутизация.
Практический пример «В списке» для источника и «Равно» для статуса — состояния AI и workflow. Он также показывает default для неизвестного источника и отсутствующего поля.