是否可以在 sumologic 中解析嵌套的 json?
Posted
技术标签:
【中文标题】是否可以在 sumologic 中解析嵌套的 json?【英文标题】:Is it possible to parse nested json in sumologic? 【发布时间】:2020-08-30 17:36:39 【问题描述】:所以我有一个这种格式的日志:
"date":1598808279.785381,
"log":"\"level\":\"info\",\"ts\":15988.7852,\"caller\":\"server/middlewares.go:26\",\"msg\":\"Request Log\",\"status\":200,\"method\":\"GET\",\"url\":\"/health\",\"duration\":0.000008323",
"container_id":"someid",
"container_name":"/service-name",
"source":"stdout"
我想提取log
字段中的状态。阅读文档后,我应该能够做到:
_collector="MyService" | json auto | fields log.status
但是,这会引发 .
的语法错误
我认为的另一个解决方案是,根据其他语言的工作方式,管道通常会返回对象,所以如果我可以增量返回字段,这应该可以工作:
_collector="MyService" | json auto | fields (log) | fields (status)
但这也行不通。
我试过这样指定一个给定的字段:
_collector="MyService" | json auto "fields.log.status"
但这不起作用。
我也尝试过使用这样的字段直接提取该值:
_collector="MyService" | json field=Message "log.status"
最后,我尝试了所有这些变化:
_collector="MyService" | json auto field=log "status"
_collector="MyService" | json auto field=log | fields status
_collector="MyService" | json auto field=log "status"
_collector="MyService" | json auto field=log "log.status"
但无济于事。
任何想法我哪里出错了?
【问题讨论】:
你找到的其他方法是什么? 【参考方案1】:logs 被转义为 json 字符串,所以你需要 json 解析两次。
| json "log"
| json auto field=log
| fields status
【讨论】:
我找到了另一种方法,但这种方法有效并且更清晰。谢谢!以上是关于是否可以在 sumologic 中解析嵌套的 json?的主要内容,如果未能解决你的问题,请参考以下文章
js解析多层嵌套的json,取出所有父元素属性和遍历所有子元素