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