Sumologic - 将JSON数组拆分为多个记录

4

我正在通过HTTP POST 方法传递一个JSON数组对象,如下所示:

[{"level":"INFO","data": "Test 1"},{"level":"INFO","data": "Test 2"}]

在SumoLogic中,这条消息被视为1个对象/日志消息。我该如何告诉SumoLogic将每个JSON对象视为独立的对象,并显示2条日志消息而不是一条?

2个回答

5

我认为这不能通过json运算符完成。但是,请查看“解析正则表达式”运算符的文档。有一个名为“multi”的选项,它为每个正则表达式的匹配创建一个新消息。在您的情况下,可能会像这样解决问题:

parse regex "\{?<fieldname>.*?\}" multi

我没有在实际产品中尝试过这个方法,但是这里提供一个Regex101链接,可以用来测试正则表达式。


这是我用来解析一些JSON的示例 | parse regex field=event "\"fieldName\":\s*\"(?<fieldName>.*?)\"" multi - jocull

0

我认为实际的解决方案是不要将日志作为数组发送。相反,将每个JSON对象包含在请求体中,并在末尾添加'\n',以便Sumo将其视为单独的日志消息。

{"level":"INFO","data": "Test 1"}\n
{"level":"INFO","data": "Test 2"}\n

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接