您可以使用processor_json插件展开JSON字段。本文介绍processor_json插件的参数说明和配置示例。
表单配置方式:采集文本日志和容器标准输出时可用。
JSON配置方式:采集文本日志时不可用。
功能入口
当您需要使用Logtail插件处理日志时,您可以在创建或修改Logtail采集配置时,添加插件配置。具体操作,请参见处理插件概述。
配置说明
Logtail 0.16.28及以上版本支持processor_json插件。
表单配置方式
参数说明
配置处理器类型为展开JSON字段,相关参数说明如下表所示。
参数
说明
原始字段
待展开的原始字段名。
JSON展开深度
JSON展开的深度。默认值为0,表示不限制。1表示当前层级,以此类推。
JSON展开连接符
JSON展开时的连接符,默认值为下划线(_)。
JSON展开字段前缀
JSON展开时,对字段名附加的前缀。
展开数组
是否展开数组类型。Logtail 1.8.0及以上版本支持该参数。
保留原始字段
选中该选项后,被解析后的日志中将保留原始字段。
原始字段缺失报错
选中该选项后,如果原始日志中无您所指定的原始字段,系统将报错。
将原始字段名作为展开字段名前缀
选中该选项后,系统会将原始字段名作为所有JSON展开字段名的前缀。
解析失败保留原始日志
选中该选项后,如果解析日志失败,系统将保留原始日志。
配置示例
对
s_key
字段进行JSON展开,并使用j
作为前缀,和原始字段名s_key
作为JSON展开后字段名。配置示例如下:原始日志(Logtail读取的文件路径)
{"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
Logtail插件处理配置
处理结果
JSON配置方式
参数说明
配置
type
为processor_json
,detail
说明如下表所示。参数
类型
是否必选
说明
SourceKey
String
是
待展开的原始字段名。
NoKeyError
Boolean
否
原始日志中无您所指定的原始字段时,系统是否报错。
true(默认值):报错。
false:不报错。
ExpandDepth
Int
否
JSON展开的深度。默认值为0,表示不限制。1表示当前层级,以此类推。
ExpandConnector
String
否
JSON展开时的连接符,默认值为下划线(_)。
Prefix
String
否
JSON展开时,对字段名附加的前缀。
KeepSource
Boolean
否
被解析后的日志中是否保留原始字段。
true(默认值):保留。
false:不保留。
UseSourceKeyAsPrefix
Boolean
否
是否将原始字段名作为所有JSON展开字段名的前缀。
KeepSourceIfParseError
Boolean
否
解析日志失败时,是否保留原始日志。
true(默认值):保留。
false:不保留。
ExpandArray
Boolean
否
是否展开数组类型。Logtail 1.8.0及以上版本支持该参数。
false(默认值):不展开。
true:展开。例如
{"k":["1","2"]}
展开为{"k[0]":"1","k[1]":"2"}
。
配置示例
对
s_key
字段进行JSON展开,并使用j
作为前缀,和原始字段名s_key
作为JSON展开后字段名。配置示例如下:原始日志(Logtail读取的文件路径)
{"s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}}}"}
Logtail插件处理配置
{ "processors":[ { "type":"processor_json", "detail": { "SourceKey": "content", "NoKeyError":true, "ExpandDepth":0, "ExpandConnector":"-", "Prefix":"j", "KeepSource": false, "UseSourceKeyAsPrefix": true } } ] }
处理结果