条件字段处理

简介

processor_fields_with_condition插件支持根据日志部分字段的取值,动态进行字段扩展或删除。

条件判断

  • 支持多字段取值比较。

  • 关系运算符:equals(默认)、regexp、contains、startwith。

  • 逻辑运算符:and(默认)、or。

过滤能力

  • 默认仅做字段动态处理。

  • 可以开启过滤功能,未命中任意条件则丢弃。

处理能力

  • 与现有插件processor_add_fields、processor_drop保持近似的使用习惯。

  • 可以支持多组条件(Case)进行动态字段处理,但是按顺序匹配上一条后即退出。

配置参数

processor_fields_with_condition配置

Condition类型说明

ConditionCase类型说明

ConditionAction类型说明

样例

  • 采集配置(使用metric_mock插件模拟输入)

enable: true
inputs:
  - Type: metric_mock
    Fields:
      content : "{\"t1\": \"2022-07-22 12:50:08.571218122\", \"t2\": \"2022-07-22 12:50:08\", \"a\":\"b\",\"c\":2,\"d\":10, \"seq\": 20}"
      t1 : "2022-07-22 12:50:08.571218122"
      t2 : "2022-07-22 12:50:08"
      a : b
      c : "2"
      d : "10"
      seq : "20"
processors:
    - Type: processor_fields_with_condition
      DropIfNotMatchCondition: true 
      Switch:
        - Case:
            FieldConditions:
              seq: "10"
              d: "10"
          Actions:
            - type: processor_add_fields
              IgnoreIfExist: false
              Fields:
                eventCode: event_00001
                name: error_oom
            - type: processor_drop
              DropKeys:
                - c
        - Case:
            FieldConditions:
              seq: "20"
              d: "10"
          Actions:
            - type: processor_add_fields
              IgnoreIfExist: false
              Fields:
                eventCode: event_00002
                name: error_oom2
flushers:
  - Type: flusher_stdout
    OnlyStdout: true
  • 输出

{
  "Index":"1",
  "a":"b",
  "c":"2",
  "content":"{\"t1\": \"2022-07-22 12:50:08.571218122\", \"t2\": \"2022-07-22 12:50:08\", \"a\":\"b\",\"c\":2,\"d\":10, \"seq\": 20}",
  "d":"10",
  "seq":"20",
  "t1":"2022-07-22 12:50:08.571218122",
  "t2":"2022-07-22 12:50:08",
  "eventCode":"event_00002",
  "name":"error_oom2",
  "__time__":"1658490721"
}

Last updated