全部产品
Search
文档中心

日志服务:展开JSON字段

更新时间:Dec 11, 2023

您可以使用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展开后字段名的前缀。配置示例如下:

    • 原始日志

      "s_key":"{\"k1\":{\"k2\":{\"k3\":{\"k4\":{\"k51\":\"51\",\"k52\":\"52\"},\"k41\":\"41\"}}})"
    • Logtail插件处理配置 image.png

    • 处理结果

      "js_key-k1-k2-k3-k4-k51":"51"
      "js_key-k1-k2-k3-k4-k52":"52"
      "js_key-k1-k2-k3-k41":"41"

JSON配置方式

  • 参数说明

    配置typeprocessor_jsondetail说明如下表所示。

    参数

    类型

    是否必选

    说明

    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展开后字段名的前缀。配置示例如下:

    • 原始日志

      "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"