Перейти к содержимому

Действия, преобразования и переменные ​

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

Добавьте преобразование ​

Откройте правило, в блоке «Тогда» выберите «Текст сообщения и переменные» и добавьте нужную операцию. Стрелками задайте порядок. В одном правиле можно сохранить до 20 преобразований.

ОперацияЧто указатьРезультат
Задать текст сообщенияБуквальный текстПолностью заменяет рабочий текст; пробелы и переносы сохраняются
Взять текст из JSONПуть, например event.messageЗаменяет рабочий текст значением поля исходного JSON
Извлечь переменную из JSONПуть и имя переменной, например site.id → siteСохраняет значение в переменную; текст не меняется
Извлечь переменные регулярным выражениемPCRE2 с именованными группамиГруппы первого совпадения становятся переменными; текст не меняется
Заменить текстИскомый фрагмент и заменаЗаменяет все точные совпадения в рабочем тексте с учётом регистра
Заменить регулярным выражениемPCRE2 и заменаЗаменяет все совпадения в рабочем тексте; в замене доступны $1, $2
Удалить префиксФрагмент начала, включая нужные пробелыУдаляет один совпавший префикс; при несовпадении оставляет текст

Регулярное выражение вводится без /.../ и флагов после него; регистр задаётся переключателем. Например, server=(?<server>[A-Za-z0-9-]+) извлекает web-01 из server=web-01. Проверяйте выражение серверной проверкой примера.

Пустая замена удаляет найденный фрагмент. «Задать текст сообщения» тоже допускает пустой промежуточный текст, если дальнейшие операции или шаблон дадут непустое уведомление. Пустой итоговый результат будет отклонён.

Порядок и исходные данные ​

Рабочий текст в начале равен телу запроса. Каждая текстовая операция читает результат предыдущей. Поэтому сначала удалите префикс, а затем извлекайте переменную выражением, которое ожидает очищенное начало.

JSON-пути всегда читают исходный JSON, даже после замены рабочего текста. Условия тоже проверяются по исходному запросу и после преобразований повторно не выполняются.

СитуацияПоведение
JSON-путь найденСтрока вставляется дословно; число/boolean — текстом; объект/массив — компактным JSON; null — пустой строкой
JSON-путь отсутствует или запрос не содержит JSONОперация пропускается, появляется предупреждение; прежний текст/переменная сохраняются
Извлечение regex не нашло совпаденияТекст и переменные сохраняются, появляется предупреждение
Две операции записали одну переменнуюИспользуется последнее записанное значение
Префикс или фрагмент замены не найденРабочий текст не меняется

Имена переменных для JSON: латинская буква или _ в начале, далее латинские буквы, цифры и _, всего до 64 символов. Не используйте служебные имена message, raw_message, importance, tags, json, channel_name. Для regex выбирайте такие же простые имена групп.

Исходный и промежуточный текст, отдельная переменная и итог уведомления ограничены 1 048 576 байтами. Нулевой байт недопустим. Ошибки размеров и формата описаны в HTTP-справке.

Передайте переменные в шаблон ​

Создайте текстовый шаблон:

text
Сервер: {{vars.server}}
{{message}}

Выберите его у канала или добавьте действию правила «Шаблон сообщения». Подстановка {{message}} берёт рабочий текст, {{raw_message}} — исходное тело, {{vars.server}} — переменную. Полный справочник — «Шаблоны и подстановки».

Внутри операции «Задать текст сообщения» подстановки не раскрываются. Для динамической строки используйте шаблон, который подставляет значения однократно.

Остальные действия ​

Через «Добавить действие» можно выбрать важность, готовый набор меток, шаблон и параметры доставки. Отсутствующее действие доставки/шаблона наследует настройки канала. Действие шаблона заменяет оформление; «Без шаблона» отключает его. Действие доставки добавляет цели к базовым назначениям канала без повторов. Пустые списки правила не отключают базовую доставку.

Чтобы снова наследовать настройки, удалите действие. Метки и важность не вычисляются из произвольного JSON-поля: правило задаёт выбранные значения. Их настройка — в статье о классификации.

Проверьте результат ​

В «Проверить на примере» сравните исходное тело, рабочий текст, переменные, итоговый текст и предупреждения. Затем отправьте тот же запрос по HTTP и проверьте сохранённые подробности в истории.

Готовый пример с точным порядком операций, альтернативным входом и default — «Обработка текста мониторинга».