You need to enable JavaScript to run this app.
导航

字段提取插件

最近更新时间2023.12.18 18:48:39

首次发布时间2022.10.14 11:41:16

本文介绍 LogCollector 字段提取相关插件的使用方法。

delimiter 插件

您可以使用 delimiter 插件指定 LogCollector 通过分隔符模式提取日志字段。

说明

LogCollector V1.0.12 及后续版本支持该插件。如何查看 LogCollector 版本,请参考查看软件版本

参数说明

名称

类型

是否必选

说明

field

String

待 LogCollector 插件处理的字段名称。

说明

  • 不支持将分隔符设置为不可见字符。
  • 只能指定一个分隔符,但分隔符中可以包含多个字符。

quote

String

引用符。被引用符包裹的内容不会被分隔符分隔,而是被解析为一个完整的字段。

说明

  • 不支持将引用符设置为不可见字符。
  • 只能指定一个引用符,但引用符中可以包含多个字符。
  • 仅 V1.0.34 及后续版本的 LogCollector 支持设置引用符。

keys

Array of String

field 指定的字段中,解析出的子字段对应的字段名(key)。每一个 key 的顺序应与解析出的字段一一对应,且数量一致,否则 LogCollector 插件配置执行失败。

说明

key 不能重复,也不能为空。

when

Object

插件的执行条件,仅当执行条件判断为 true 时,才执行此插件。详细说明请参考插件执行条件

trim_values.mode

String

trim_values 用于指定是否删除 value 两端的字符串,其中 mode 参数指定删除方式。

  • none:不删除任何字符串。
  • all:(默认)删除 value 两端的字符串。
  • left:删除 value 开头的字符串。
  • right:删除 value 结尾的字符串。

trim_values.chars

String

trim_values 用于指定是否删除 value 两端的字符串,其中 chars 参数指定删除的字符范围。默认为双引号(")。

allow_empty_values

Boolean

如果 field 指定字段的字段值(value)经解析后,某个子字段值为空,是否保留此键值对。

  • true:保留 value 为空值的键值对。
  • false:(默认)不保留 value 为空值的键值对。

allow_overwrite_keys

Boolean

如果 keys 中指定的 key 与采集配置中已存在的 key 重复时,是否覆盖已存在 key 对应的字段。

  • true:覆盖
  • false:(默认)key 重复时,LogCollector 插件配置执行失败。

配置示例

  • 原始日志:

    "delimiter_key": "\"Click&&Here\"&&36&&bold&&text1&&250&&100&&#center#&&sun1.opacity = (sun1.opacity / 100) * 90;"
    
  • LogCollector插件处理配置

    {
        "processors":[
            {
                "delimiter": {
                    "field": "delimiter_key",
                    "delimiter": "&&",
                    "quote": "\"",
                    "keys": [
                        "data",
                        "size",
                        "style",
                        "name",
                        "hOffset",
                        "vOffset",
                        "alignment",
                        "onMouseUp"
                    ],
                    "trim_values": {
                        "mode": "all",
                        "chars": "#"
                    },
                    "allow_overwrite_keys": true,
                    "allow_empty_values": true
                }
            }
        ]
    }
    
  • 处理结果

    "data": "\"Click&&Here\""
    "size": "36"
    "style": "bold"
    "name": "text1"
    "hOffset": "250"
    "vOffset": "100"
    "alignment": "center"
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    

fullregex 插件

您可以使用 fullregex 插件指定 LogCollector 通过完整正则模式提取日志字段。

说明

LogCollector V1.0.12 及后续版本支持该插件。如何查看 LogCollector 版本,请参考查看软件版本

参数说明

名称

类型

是否必选

解释

field

String

待 LogCollector 插件处理的字段名称。

pattern

String

正则表达式,一个捕获组对应一个解析出来的 value。

keys

Array of String

field 指定的字段中,解析出的子字段对应的字段名(key)。每一个 key 的顺序应与解析出的字段一一对应。

说明

key 不能重复,也不能为空。

when

Object

插件的执行条件,仅当执行条件判断为 true 时,才执行此插件。详细说明请参考插件执行条件

trim_values.mode

String

trim_values 用于指定是否删除 value 两端的字符串,其中 mode 参数指定删除方式。

  • none:不删除任何字符串。
  • all:(默认)删除 value 两端的字符串。
  • left:删除 value 开头的字符串。
  • right:删除 value 结尾的字符串。

trim_values.chars

String

trim_values 用于指定是否删除 value 两端的字符串,其中 chars 参数指定删除的字符范围。默认为双引号(")。

allow_empty_values

boolean

如果 field 指定字段的字段值(value)经解析后,某个子字段值为空,是否保留此键值对。

  • true:保留 value 为空值的键值对。
  • false:(默认)不保留 value 为空值的键值对。

allow_overwrite_keys

boolean

如果 keys 中指定的 key 与采集配置中已存在的 key 重复时,是否覆盖已存在 key 对应的字段。

  • true:覆盖
  • false:(默认)key 重复时,LogCollector 插件配置执行失败。

配置示例

  • 原始日志

    "fullregex_key": "Click Here, 36, bold, text1, 250, 100, #center#, sun1.opacity = (sun1.opacity / 100) * 90;",
    
  • LogCollector 插件处理配置

    {
        "processors":[
            {
                "fullregex": {
                    "field": "fullregex_key",
                    "pattern": "([\\s\\w]+),\\s(\\d+),\\s(\\w+),\\s(\\w+),\\s(\\d+),\\s(\\d+),\\s(\\S+\\w+\\S+),\\s(.*).*",
                    "keys": [
                        "data",
                        "size",
                        "style",
                        "name",
                        "hOffset",
                        "vOffset",
                        "alignment",
                        "onMouseUp"
                    ],
                    "trim_values": {
                        "mode": "all",
                        "chars": "#"
                    },
                    "allow_overwrite_keys": true,
                    "allow_empty_values": true
                }
            }
        ]
    }
    
  • 处理结果

    "data": "Click Here"
    "size": "36"
    "style": "bold"
    "name": "text1"
    "hOffset": "250"
    "vOffset": "100"
    "alignment": "center"
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    

kv 插件

您可以使用 kv 插件提取日志字段。本文介绍 kv 插件的参数说明和配置示例。

说明

LogCollector V1.0.12 及后续版本支持该插件。如何查看 LogCollector 版本,请参考查看软件版本

参数说明

名称

类型

是否必选

解释

field

String

待 LogCollector 插件处理的字段名称。

when

Object

插件的执行条件,仅当执行条件判断为 true 时,才执行此插件。详细说明请参考插件执行条件

split_pattern

string

键值对与键值对之间的分隔符。未指定该参数时,表示分隔符为空格。

quote

String

引用符。被引用符包裹的内容不会被分隔符分隔,而是被解析为一个完整的字段。

说明

  • 不支持将引用符设置为不可见字符。
  • 只能指定一个引用符,但引用符中可以包含多个字符。
  • 仅 V1.0.34 及后续版本的 LogCollector 支持设置引用符。

kv_split_pattern

string

每个键值对中,key 与 value 之间的分隔符。未指定该参数时,表示分隔符为等号(=)。

trim_keys.mode

string

trim_keys 用于指定是否删除 key 两端的字符串,其中 mode 参数指定删除方式。

  • none:不删除任何字符串。
  • all:(默认)删除 key 两端的字符串。
  • left:删除 key 开头的字符串。
  • right:删除 key 结尾的字符串。

trim_keys.chars

string

trim_keys 用于指定是否删除 key 两端的字符串,其中 chars 参数指定删除的字符范围。默认为双引号(")。

trim_values.mode

String

trim_values用于指定是否删除 value 两端的字符串,其中 mode 参数指定删除方式。

  • none:不删除任何字符串。
  • all:(默认)删除 value 两端的字符串。
  • left:删除 value 开头的字符串。
  • right:删除 value 结尾的字符串。

trim_values.chars

String

trim_values 用于指定是否删除 value 两端的字符串,其中 chars 参数指定删除的字符范围。 默认为双引号(")。

allow_empty_values

boolean

如果 field 指定字段的字段值(value)经解析后,某个子字段值为空,是否保留此键值对。

  • true:保留 value 为空值的键值对。
  • false:(默认)不保留 value 为空值的键值对。

allow_overwrite_keys

boolean

如果 keys 中指定的 key 与采集配置中已存在的 key 重复时,是否覆盖已存在 key 对应的字段。

  • true:覆盖
  • false:(默认)key 重复时,LogCollector 插件配置执行失败。

配置示例

  • 原始日志

    "kv_key": "data: \"Click,Here\", size: 36, style: bold, name: text1, hOffset: 250, vOffset: 100, #alignment#: #center#, onMouseUp: sun1.opacity = (sun1.opacity / 100) * 90;"
    
  • LogCollector 插件配置

    {
        "processors":[
            {
                "kv": {
                    "field": "kv_key",
                    "split_pattern": ",",
                    "kv_split_pattern": ":\\s+",
                    "quote": "\"",
                    "trim_keys": {
                        "mode": "all",
                        "chars": "#"
                    },
                    "trim_values": {
                        "mode": "all",
                        "chars": "#"
                    },
                    "allow_overwrite_keys": true,
                    "allow_empty_values": true
                }
            }
        ]
    }
    
  • 处理结果

    "data": "\"Click,Here\""
    "size": "36"
    "style": "bold"
    "name": "text1"
    "hOffset": "250"
    "vOffset": "100"
    "alignment": "center"
    "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"