Обработчики
Конфигурация обработчиков данных настраивается на вкладке настроек соответствующего Потока данных.
Обработчики предназначены для нормализации входящих данных перед записью в хранилище.
Ниже приведен список доступных обработчиков для текущей версии системы.
Общие функции
Дополнительные поля
Практически для всех видов обработчиков доступно обогащение входных данных дополнительными полями. Исключением является обработчик Automaton
, в котором обогащение производится в сценарии автоматизации.
Дополнительные поля добавляются к входящим данным, записываются в хранилище, а также отправляются на пост-обработку, если она включена.
Если название дополнительного поля совпадает с полем в исходном событии, то значение исходного события будет перезаписано значением дополнительного поля.
Обработчик Json
Формат: Произвольный валидный JSON
Примечания:
- Парсер будет обрабатывать только найденные пары ключ-значение (все что не является объектом будет игнорироваться)
- В случае работы с массивом парсер обработает его как массив ключ-значений, и в базу запишет как одно событие
- Если отправляется пустой объект или массив, то он не записывается, предупреждение отправляется в журнал ошибок
- Вложенные поля, имеющие значение пустого массива, пустого объекта или null, записываются пустой строкой
Опции настройки метки времени:
-
Использовать время получения лога системой
При выборе данной опции, время в логе будет проставлено в тот момент когда лог пришел в систему
-
Извлечь из JSON
При выборе данной опции требуется заполнение параметров:
- Путь к полю - используется JSONPath-путь, например
$.timestamp
- Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
- Путь к полю - используется JSONPath-путь, например
-
Найти через регулярное выражение
При выборе данной опции требуется заполнение параметров:
-
Регулярное выражение - шаблон поиска метки времени в логе, например
\d{4}-\d{2}-\d{2}Т\d{2}:\d{2}:\d{2}Z
-
Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
-
В случае если включена "Постобработка", то на пост-обработку отправляется ИСХОДНЫЙ лог до парсинга + дополнительные пользовательские поля (добавляются в json лога перед отправкой).
Пример обработки лога:
-
Входящее событие
{
"level": "error",
"timestamp": "2024-02-15T08:30:45Z",
"numbers": [60, 20],
"details": {
"service": "auth",
"error": "Permission denied"
}
} -
Результат обработки
{
"level": "error",
"timestamp": "2024-02-15T08:30:45Z",
"numbers[0]": "60",
"numbers[1]": "20",
"details.service": "auth",
"details.error": "Permission denied"
}
Обработчик NdJson
Формат: Список произвольных валидных JSON событий, разделенных "новой строкой"
Примечания:
- Каждая строка парсится как отдельный Json
Опции настройки метки времени идентичны обработчику Json
В случае если включена "Постобработка", то на пост-обработку отправляется ИСХОДНЫЙ лог до парсинга + дополнительные пользовательские поля. Каждый JSON внутри NdJson будет отправлен отдельным сообщением в исходном виде до преобразования в плоский словарь значений. Также к каждому сообщению будут добавлены дополнительные поля.
Пример обработки лога:
-
Входящее событие
{"event": "start", "time": "04:04:04"}
{"event": "error", "code": 500, "message": "Internal error", "time": "06:06:06"} -
Результат обработки
// Первое сообщение
{
"event": "start",
"time": "04:04:04"
},
// Второе сообщение
{
"event": "error",
"code": "500",
"message": "Internal error",
"time": "06:06:06"
}
Обработчик JsonArray
Формат: Список произвольных валидных JSON событий, разделенных запятой (пример, [{},{},{}]
)
Примечания:
- Каждая строка парсится как отдельный Json
Опции настройки метки времени идентичны обработчику Json
В случае если включена "Постобработка", то на пост-обработку отправляется ИСХОДНЫЙ лог до парсинга + дополнительные пользовательские поля.
Пример обработки лога:
-
Входящее событие
[
{
"name": "Alex",
"age": 32,
"city": "New York",
"hobbies": [
"reading",
"music"
],
"address": {
"street": "123 Main St",
"number": "456",
"city": "New York",
"state": "NY"
},
"data": {
"datetime": "2024-01-15T10:30:00+01:00"
}
},
{
"name": "Bob",
"age": 53,
"city": "Florida",
"hobbies": [
"sports"
]
}
] -
Результат обработки
// Первый лог
{
"name": "Alex",
"age": "32",
"city": "New York",
"hobbies[0]": "reading",
"hobbies[1]": "music",
"address.street": "123 Main St",
"address.number": "456",
"address.city": "New York",
"address.state": "NY",
"data.datetime": "2024-01-15T10:30:00+01:00"
}
// Второй лог
{
"name": "Bob",
"age": "53",
"city": "Florida",
"hobbies[0]": "sports"
}
Обработчик Xml
Формат: Произвольный валидный XML
Примечания:
- Содержащиеся в XML массивы обрабатываются и формируются через подчёркивание
- В XML у элементов массива существуют названия, эти названия будут содержаться в результирующем формате JSON
- Пространство имен будет проигнорировано
Опции настройки метки времени:
-
Использовать время получения лога системой
При выборе данной опции, время в логе будет проставлено в тот момент когда лог пришел в систему
-
Извлечь из XML
При выборе данной опции требуется заполнение параметров:
- Путь к полю - используется xPath-путь, например
$.timestamp
- Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
- Путь к полю - используется xPath-путь, например
-
Найти через регулярное выражение
При выборе данной опции требуется заполнение параметров:
-
Регулярное выражение - шаблон поиска метки времени в логе, например
\d{4}-\d{2}-\d{2}Т\d{2}:\d{2}:\d{2}Z
-
Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
-
В случае если включена "Постобработка", то на постобработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Пример обработки лога:
-
Входящее событие
<?xml version="1.0" encoding="UTF-8"?>
<order>
<orderId>12345</orderId>
<customer>
<name>John Doe</name>
<email>john.doe@example.com</email>
</customer>
<items>
<item>
<productId>A123</productId>
<quantity>2</quantity>
</item>
<item>
<productId>B456</productId>
<quantity>1</quantity>
</item>
</items>
</order> -
Результат обработки
{
"?xml@version": "1.0",
"?xml@encoding": "UTF-8",
"order.orderId": "12345",
"order.customer.name": "John Doe",
"order.customer.email": "john.doe@example.com",
"order.items.item_0.productId": "A123",
"order.items.item_0.quantity": "2",
"order.items.item_1.productId": "B456",
"order.items.item_1.quantity": "1"
}
Если в XML есть метаданные, например
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
, они будут записаны следующим образом:{
"?xml@version": "1.0",
"?xml@encoding": "UTF-8",
"?xml@standalone": "yes"
}
Обработчик Nginx
Формат: Стандартный лог Nginx (настройки по умолчанию)
Примечания:
- Не предполагается работа парсера с журналом ошибок Nginx (error_log)
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога.
Пример обработки лога:
-
Входящее событие
81.94.230.132 - - [01/Jul/2025:07:17:00 +0300] "GET /favicon.ico HTTP/1.1" 404 197 "http://example.com/" "Mozilla/5.0"
-
Результат обработки
{
"remote_addr": "81.94.230.132",
"host": "-",
"remote_user": "-",
"time_local": "01/Jul/2025:07:17:00",
"request_method": "GET",
"request_path": "/favicon.ico",
"request_protocol": "HTTP/1.1",
"status": "404",
"body_bytes_sent": "197",
"http_referer": "http://example.com/",
"http_user_agent": "Mozilla/5.0"
}
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик Regex
Формат: текстовые данные произвольного формата
Опции парсера:
-
Шаблон парсинга - регулярное выражение с именованными группами для извлечения данных, например
\[(?<level>\w+)\].*?\|UserID:(?<userid>\d+)
. Поле является опциональным. Если не указать регулярное выражение, весь лог будет записан в поле с ключомvalue
. -
MultimatchRegex - булевый параметр, определяющий поведение регулярного выражения при обработке текста, когда возможны множественные совпадения шаблона в одной строке.
false
(по умолчанию) - регулярное выражение ищет только первое совпадение в текстеtrue
- обработчик выявляет все возможные совпадения шаблона в данных
Опции настройки метки времени:
-
Использовать время получения лога системой
При выборе данной опции, время в логе будет проставлено в тот момент когда лог пришел в систему
-
Найти через регулярное выражение
При выборе данной опции требуется заполнение параметров:
-
Регулярное выражение - шаблон поиска метки времени в логе, например
\d{4}-\d{2}-\d{2}Т\d{2}:\d{2}:\d{2}Z
-
Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
-
Пример обработки лога:
-
Если MultimatchRegex = false
-
Текст на входе:
192.168.2.20 - [29/Jul/2015:10:27:10 -0300] \"GET /cgi-bin/try/ HTTP/1.0\" 200 3395
-
Регулярное выражение:
^(?<remoteAddr>[^ ]*) (?<remoteUser>[^ ]*) \[(?<timeLocal>.*)] "(?<requestMethod>[^ ]*) (?<requestPath>[^ ]*) (?<requestProtocol>[^ ]*)" (?<status>[^ ]*) (?<bodyBytesSent>[^ ]*)$
-
Результат после парсинга:
{
"remoteAddr": "192.168.2.20",
"remoteUser": "-",
"timeLocal": "29/Jul/2015:10:27:10 -0300",
"requestMethod": "GET",
"requestPath": "/cgi-bin/try/",
"requestProtocol": "HTTP/1.0",
"status": "200",
"bodyBytesSent": "3395"
}
-
-
Если MultimatchRegex = true:
-
Текст на входе:
user: Alex, status: Info, details: Something broke, timestamp: 20.11.2024 13:52:04
-
Регулярное выражение:
?((?<key>[^\s]*): ?)( (?<value>[^,]*),?)
-
Результат после парсинга:
{
"user": "Alex",
"status": "Info",
"details": "Something broke",
"timestamp": "20.11.2024 13:52:04"
}
В результате применения регулярного выражения происходят множественные совпадения. В каждом совпадении группа
key
захватывает название ключа, а группаvalue
захватывает значение под этим ключом. Таким образом формируется результирующий словарь произвольного размера. -
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик FullRequest
Формат: Произвольный HTTP запрос любого формата
Примечания:
- Обработчик обогащает входящие данные, добавляя заголовки, параметры запроса и теле в структуру JSON
- Заголовки и параметры добавляются к результату, а
body
превращается в плоский словарь, если это валидный JSON - Если JSON не валидный, то лог записывается строкой под ключом
body
- В лог не будут добавляться системные заголовки
Опции настройки метки времени:
-
Использовать время получения лога системой
При выборе данной опции, время в логе будет проставлено в тот момент когда лог пришел в систему
-
Извлечь из JSON
При выборе данной опции требуется заполнение параметров:
- Путь к полю - используется JSONPath-путь, например
$.timestamp
- Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
- Путь к полю - используется JSONPath-путь, например
-
Найти через регулярное выражение
При выборе данной опции требуется заполнение параметров:
-
Регулярное выражение - шаблон поиска метки времени в логе, например
\d{4}-\d{2}-\d{2}Т\d{2}:\d{2}:\d{2}Z
-
Формат времени - формат метки времени, например
"dd.MM.yyyy HH:mm:ss zzz"
. Для Unix-секунд используйтеuts
, для миллисекундutms
-
В случае если "Постобработка" включена, то на постобработку отправляется Отправляется объект, в котором есть заголовки в виде объекта, параметры запроса в виде объекта и само тело запроса в виде строки + дополнительные поля пользователя.
Пример обработки лога:
-
Входящее событие
{
"level": "error",
"timestamp": "2024-02-15T08:30:45Z",
"numbers": [60, 20],
"details": {
"service": "auth",
"error": "Permission denied"
}
} -
Результат обработки
{
"headers.Accept": "*/*",
"headers.Host": "monq.ru",
"headers.User-Agent": "PostmanRuntime/7.44.1",
"headers.Accept-Encoding": "gzip, deflate, br",
"headers.Content-Type": "application/json",
"headers.Content-Length": "142",
"headers.X-Request-ID": "9ae2ddc43798e9369f6540ec46221db9",
"headers.X-Real-IP": "192.168.1.1",
"headers.X-Forwarded-For": "192.168.1.1",
"headers.X-Forwarded-Host": "monq.ru",
"headers.X-Forwarded-Port": "443",
"headers.X-Forwarded-Proto": "https",
"headers.X-Forwarded-Scheme": "https",
"headers.X-Scheme": "https",
"headers.Postman-Token": "***",
"body.level": "error",
"body.timestamp": "2024-02-15T08:30:45Z",
"body.numbers[0]": "60",
"body.numbers[1]": "20",
"body.details.service": "auth",
"body.details.error": "Permission denied"
}
Обработчик Apache
Формат: Стандартный лог Apache (настройки по умолчанию)
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога.
Пример обработки лога:
-
Входящее событие
192.168.2.20 - - [29/Jul/2015:10:27:10 -0300] "GET /cgi-bin/try/ HTTP/1.0" 200 3395
-
Результат обработки
{
"remote_addr": "192.168.2.20",
"remote_user": "-",
"time_local": "29/Jul/2015:10:27:10 -0300",
"request_method": "GET",
"request_path": "/cgi-bin/try/",
"request_protocol": "HTTP/1.0",
"status": "200",
"body_bytes_sent": "3395"
}
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик Docker
Формат: JSON
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога.
Пример обработки лога:
-
Входящее событие
{
"log": "Merging configuration file '/etc/clickhouse-server/config.d/docker_related_config.xml'.\n",
"stream": "stderr",
"time": "2025-07-23T19:00:00.000000000Z"
} -
Результат обработки
{
"log": "Merging configuration file '/etc/clickhouse-server/config.d/docker_related_config.xml'.\n",
"stream": "stderr"
}
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик SyslogRfc5424
Формат: Соответствует RFC5424
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога.
Пример обработки лога:
-
Входящее событие
<34>1 2025-07-01T06:25:00.000Z myhost app - ID123 [meta] Server crashed
-
Результат обработки
{
"pri": "34",
"version": "1",
"time": "2025-07-01T06:25:00.000Z",
"host": "myhost",
"ident": "app",
"pid": "-",
"msgid": "ID123",
"extradata": "[meta]",
"message": "Server crashed"
}
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик SyslogRfc3164
Формат: Соответствует RFC3164
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога с добавлением текущего года.
Пример обработки лога:
-
Входящее событие
<30>Jul 1 06:25:00 hlfedora auditd[1787]: Disk full
-
Результат обработки
{
"pri": "30",
"time": "2025-07-01T06:25:00.000Z",
"host": "hlfedora",
"ident": "auditd",
"pid": "1787",
"message": "Disk full"
}
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик PrometheusAlerts
Формат: Соответствует структуре уведомлений "Prometheus Alert Manager". Каждый элемент массива alerts
обрабатывается как отдельная запись
Опции настройки метки времени: отсутствуют, временная метка будет записана по времени обработки события системой
Пример обработки лога:
-
Входящее событие
{
"receiver": "monitoring/alertmanager-s5/integration\\.web\\.hook",
"status": "firing",
"alerts": [
{
"status": "firing",
"labels": { "alertname": "Test Alert1", "instance": "10.244.4.164:9091" },
"annotations": { "description": "Collector test from QA1" },
"startsAt": "2025-07-01T07:12:00.000Z"
},
{
"status": "firing",
"labels": { "alertname": "Test Alert2", "instance": "10.244.4.164:9091" },
"annotations": { "description": "Collector test from QA2" },
"startsAt": "2025-07-01T07:12:00.000Z"
}
],
"externalURL": "http://alertmanager.in.smon.monq.ru",
"version": "4"
} -
Результат обработки
-
1-й алерт:
{
"status": "firing",
"labels.alertname": "Test Alert1",
"labels.instance": "10.244.4.164:9091",
"annotations.description": "Collector test from QA1",
"startsAt": "2025-07-01T07:12:00.000Z",
"receiver": "monitoring/alertmanager-s5/integration\\.web\\.hook",
"externalURL": "http://alertmanager.in.smon.monq.ru",
"version": "4"
} -
2-й алерт:
{
"status": "firing",
"labels.alertname": "Test Alert2",
"labels.instance": "10.244.4.164:9091",
"annotations.description": "Collector test from QA2",
"startsAt": "2025-07-01T07:12:00.000Z",
"receiver": "monitoring/alertmanager-s5/integration\\.web\\.hook",
"externalURL": "http://alertmanager.in.smon.monq.ru",
"version": "4"
}
-
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик Monq
Формат: Массив JSON, каждый объект которого будет иметь 3 поля:
timestamp
- временная метка логаbody
- сырой лог целиком в любом видеsource
- готовые полезные поля лога после парсинга в формате ключ-значение (объект json без массивов и вложенностей).
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога.
Пример обработки лога:
-
Входящее событие
[
{
"timestamp": "2025-07-01 07:17:00.000000000",
"body": "Unknown error occurred, module: A, level: error",
"source": {
"module": "A",
"level": "error",
"message": "Unknown error occurred"
}
},
{
"timestamp": "2025-07-01 07:17:00",
"body": "User logged in successfully, module: A, level: info",
"source": {
"module": "A",
"level": "info",
"message": "User logged in successfully"
}
}
] -
Результат обработки
{
"module": "A",
"level": "error",
"message": "Unknown error occurred"
}
...
{
"module": "A",
"level": "info",
"message": "User logged in successfully"
}
В случае если включена "Постобработка", то на пост-обработку отправляется ИСХОДНЫЙ лог до парсинга + дополнительные пользовательские поля (добавляются в json лога перед отправкой).
Обработчик Loki
Формат: Соответствует формату Loki (прием логов)
Примечания:
- Из одного входящего события могут генерироваться несколько записей. В словарь переменных после парсинга идут только значения меток в объекте
stream
, время лога берется из наносекунд вvalues
, вbody
записывается значение (например, log3 message), которое не парсится.
Опции настройки метки времени: отсутствуют, временная метка будет записана та, которая указана внутри самого лога.
Пример формата:
{
"streams": [
{
"stream": {
"label1": "value1",
"label2": "value2"
},
"values": [
[ "<unix время в наносекундах>", "<log1 message>" ],
[ "<unix время в наносекундах>", "<log2 message>" ]
]
},
{
"stream": {
"label1": "value3",
"label2": "value4"
},
"values": [
[ "<unix время в наносекундах>", "<log3 message>" ],
[ "<unix время в наносекундах>", "<log4 message>" ]
]
}
]
}
Пример обработки лога:
-
Входящее событие
{
"streams": [
{
"stream": {
"label1": "value1",
"label2": "value2"
},
"values": [
[ "1751346900000000000", "<log1 message>" ],
[ "1751346900000000000", "<log2 message>" ]
]
},
{
"stream": {
"label1": "value3",
"label2": "value4"
},
"values": [
[ "1751346900000000000", "<log3 message>" ],
[ "1751346900000000000", "<log4 message>" ]
]
}
]
} -
Результат обработки
{
"label1": "value1",
"label2": "value2",
"body": "<log1 message>"
}
...
{
"label1": "value1",
"label2": "value2",
"body": "<log2 message>"
}
...
{
"label1": "value3",
"label2": "value4",
"body": "<log3 message>"
}
...
{
"label1": "value3",
"label2": "value4",
"body": "<log4 message>"
}
В случае если включена "Постобработка", то на пост-обработку отправляется лог в формате "ключ-значение" после парсинга + дополнительные пользовательские поля.
Обработчик Automaton
Формат: Поддерживает логи в форматах:
text/xml
text/plain
application/x-ndjson
application/json
Формат указывается в заголовке запроса: Content-Type
.
Примечания:
- Порядок работы парсера
Automaton
зависит от значения параметра запросаstreamParserMode
или заголовка запросаx-smon-stream-parser-mode
- Может принимать значения
full
,body
или может быть не указан - Парсер
Automaton
не имеет дополнительных полей на вкладке потока, в данном парсере дополнительные поля могут быть добавлены в сценарии-обработчике потока
Опции настройки метки времени: временная метка принимается в формате @timestamp
, допустим формат указания времени YYYY-MM-DDTHH:MM:SS.Z
Пример обработки лога:
- Исходный лог:
{
"level": "error",
"@timestamp": "2025-08-06T08:30:45Z",
"numbers": [60, 20],
"details": {
"service": "auth",
"error": "Permission denied"
}
}
-
Результат обработки:
-
Если
streamParserMode
=body
или значение не указано, то в полеsource
модели отправляемой событияOnRawLogEvent
будет записано записано тело события, которое было отправлено.{
"source": "{\n \"level\": \"error\",\n \"@timestamp\": \"2025-08-06T08:30:45Z\",\n \"numbers\": [60, 20],\n \"details\": {\n \"service\": \"auth\",\n \"error\": \"Permission denied\"\n }\n}",
"_sourceType": "application/json",
"_rawId": "272a61d0-1503-4f37-8361-fbd8a29a7ad7",
"_aggregatedAt": "2025-08-06T13:55:09.5512591+00:00",
"_stream": {
"id": 6368,
"name": "Парсер Автоматон"
},
"_userspaceId": 1,
"_labels": {
"streamParserMode": "Body"
}
} -
Если
streamParserMode
=full
то приходит сообщение, значение поляsource
которого имеет структуру, как в примере ниже.{
"source": "{\"Headers\":{\"Accept\":\"*/*\",\"Host\":\"smon.monq.ru\",\"User-Agent\":\"PostmanRuntime/7.45.0\",\"Accept-Encoding\":\"gzip, deflate, br\",\"Content-Type\":\"application/json\",\"Content-Length\":\"161\",\"X-Request-ID\":\"3954ed313cd7d1cb57ae4ad39a39ec11\",\"X-Real-IP\":\"192.168.216.66\",\"X-Forwarded-For\":\"192.168.216.66\",\"X-Forwarded-Host\":\"smon.monq.ru\",\"X-Forwarded-Port\":\"443\",\"X-Forwarded-Proto\":\"https\",\"X-Forwarded-Scheme\":\"https\",\"X-Scheme\":\"https\",\"Postman-Token\":\"85f3c409-54df-4498-b611-e5c0a6453a77\"},\"QueryParams\":{},\"Body\":\"{\\n \\\"level\\\": \\\"error\\\",\\n \\\"@timestamp\\\": \\\"2025-08-06T08:30:45Z\\\",\\n \\\"numbers\\\": [60, 20],\\n \\\"details\\\": {\\n \\\"service\\\": \\\"auth\\\",\\n \\\"error\\\": \\\"Permission denied\\\"\\n }\\n}\"}",
"_sourceType": "application/json",
"_rawId": "5390f992-98eb-44b5-8eb9-e57dc7644731",
"_aggregatedAt": "2025-08-06T14:01:06.0015755+00:00",
"_stream": {
"id": 6368,
"name": "Парсер Автоматон"
},
"_userspaceId": 1,
"_labels": {
"streamParserMode": "Full"
}
}
-
Настройка непосредственно сценария обработки производится на визуальном low-code движке (руководство)
-
После внесения изменений в сценарии необходимо произвести его компиляцию соответствующей кнопкой в верхней панели меню.
-
В случае если "Постробработка" включена, то на постобработку отправляется лог после парсинга автоматоном. Если
NdJson
или массивJson
, то каждый элемент отправится отдельным сообщением с общими полями метаданных. Будет совпадатьRawId
, но различатьсяId
.
Ниже приведен список основных функций, которые часто используются в обработчике данного типа.
AddLabels
-
Библиотека: Automaton.Cl
-
Тип функции: Impure
-
Описание и назначение:
Функция принимает на вход структуру
OnProcessedLogEvent
, и массив объектов, который будет добавлен к объекту_labels
, входящему в состав структуры.Необходима при добавлении кастомных полей к обрабатываемому событию.
-
Inputs
Название Тип Описание Параметры In Exec Пин вызова функции Связь ProcessedEvent Struct:OnProcessedLogEvent Принимает на вход структуру OnProcessedLogEvent Связь Labels Dynamic (array) Массив меток Связь -
Outputs
Название Тип Описание Параметры Out Exec Пин вызова функции Связь Result Struct:OnProcessedLogEvent Обновленная модель события с добавленными метками. Связь
-
SendAutomatonEvent
-
Категория: Automaton.Core
-
Тип функции: Impure
-
Описание:
Функция принимает событие и отправляет в очередь RabbitMQ по указанному пользователем ключу события.
Необходима для маршрутизации событий по маршрутным узлам автоматона.
-
Inputs
Название Тип Описание Параметры In Exec Пин вызова функции Связь Value Struct: Any Принимает событие, которое будет отправлено в указанную очередь Связь EventName String Строка для указания ключа Связь/контрол -
Outputs
Название Тип Описание Параметры Ok Exec Последовательность активна при успешной отправке события Связь Failed Exec Последовательность активна при ошибке отправки события Связь Error String Текст ошибки (при наличии) Связь
-