JSON结构

JSON结构的日志经常由软件组件生产,并被推广为伐木最佳实践。JSON格式化日志易于由各种软件组件生产和消耗,并且是人类可读的。

要在日志搜索中扩展JSON格式,请启用展开json.在日志显示部分下的选项。启用此选项将使有效的JSON日志消息显示为扩展的JSON对象。

基本的

JSON解析规范

系统将自动解析按照规定格式化的JSON格式的日志事件JSON规范(IETF RFC 4627)。要利用“分解”选项,条目必须是单个对象({...})或JSON对象数组。嵌入在非结构化数据中嵌入的JSON对象仍将识别为键,但您将无法展开JSON层次结构。笔记

如果有多个键在JSON对象中共享相同名称,则解析器将将最后一个键解释为正确的密钥。

基本的

嵌套的json.

您可以使用JSON层次结构进行查询和警报。例如,如果您像下面的示例一样发送日志。

         
杰森
1
{
2
“体积”“抱怨”
3.
“当前的”{
4.
“乐队”“rednex”
5.
“歌曲”“棉眼乔”
6.
“成员”[
7.
{“名”“肯特”“姓”“Olander”}
8.
{“名”“城市的”“姓”“Landgren”}
9.
{“名”“乔纳斯”“姓”“Lundstrom”}
10.
{“名”“tor”“姓”“尼尔森”}
11.
]
12.
}
13.
“下一个”{
14.
“乐队”“石民司”
15.
“歌曲”“Finnegan的唤醒”
16.
“成员”[
17.
{“名”“罗尼”“姓”“德鲁”}
18.
{“名”“卢克”“姓”“凯利”}
19.
{“名”“Ciaran”“姓”“Bourke”}
20.
{“名”“巴尼”“姓”“mckenna”}
21.
]
22.
}
23.
}

我们使用点表示法为嵌套对象和数组位置的整数。下面我们提供了一些使用点表示法和数组位置的示例查询,您可能会发现有用。

基本的

示例查询

你想找到卷是拖欠的

其中(卷=“blaring”)

您想找到当前频段是rednex时。

其中(current.band =“rednex”)

您想找到一名名为“Ciaran”的小型人员

哪里(Next.members.2.firstname =“ciaran”)

这里是关于上面的日志消息示例的查询和生成的匹配的更多示例。

json dot符号

火柴

Current.Band.

雷诺克斯

Current.Song.

棉眼睛乔

目前

当前.mbers.0

当前.mbers.1.firstname.

城市的

当前.mbers.2.lastname.

Lundstrom

基本的

警报

如果有人试图使用像“Next.Band”=“Nickelback”这样的模式尝试粘贴一些Nickelback,则可以设置警报,这可以标记消息或根据标签或警报设置消息。

基本的

笔记

  • 不支持深度超过10个级别的JSON条目。他们不会被解析。在存储之前完全解决嵌套键,即当前.members不是一个关键

  • 可能需要更新任何预先存在的警报或保存的查询。如果有任何警报或查询,则针对子对象搜索(例如,上面示例中的(频带)),更改可能会破坏您的查询。

  • 我们建议更新您的查询以支持旧查询和新查询。因此,使用上面的示例,您可以查询(频带或Current.Band)。