CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/LoongCollector/条件字段处理
文档目录
概览版本管理
什么是处理插件
添加字段追加字段添加云资产信息原始数据数据脱敏字段值映射处理丢弃字段字段加密条件字段处理日志过滤时间提取(Go 时间格式)GrokJson日志转SLS Metricotel Metric格式转换otel Trace格式转换字段打包日志限速正则重命名字段分隔符键值对多行切分字符串替换时间提取(strptime 格式)

LoongCollector

条件字段处理

processorfieldswithcondition插件支持根据日志部分字段的取值,动态进行字段扩展或删除。源代码 Stable 支持多字段取值比较。 关系运算符:equals(默认)、regexp、contains、startwith。 逻辑运算符:and(默认)、or。 默认仅做字段动态处理。 可以开启过滤功能,未命中任意条件则丢弃。 ...

条件字段处理

简介

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

版本

Stable

条件判断

  • 支持多字段取值比较。
  • 关系运算符:equals(默认)、regexp、contains、startwith。
  • 逻辑运算符:and(默认)、or。

过滤能力

  • 默认仅做字段动态处理。
  • 可以开启过滤功能,未命中任意条件则丢弃。

处理能力

  • 与现有插件processor_add_fields、processor_drop保持近似的使用习惯。
  • 可以支持多组条件(Case)进行动态字段处理,但是按顺序匹配上一条后即退出。

版本说明

  • 推荐版本:iLogtail v1.0.33 及以上

配置参数

`processor_fields_with_condition`配置

参数 类型,默认值 说明
Type string,无默认值(必填) 插件类型,固定为processor_fields_with_condition
DropIfNotMatchCondition Boolean,false 当条均件不满足时,日志是被丢弃(true)还是被保留(false)。
Switch Array,其中value为Condition,无默认值(必填) 切换行动的条件。

`Condition`类型说明

参数 类型,默认值 说明
Case ConditionCase,无默认值(必填) 日志数据满足的条件。
Actions Array,其中value为ConditionAction,无默认值(必填) 满足条件时执行的动作。

`ConditionCase`类型说明

参数 类型,默认值 说明
LogicalOperator string,and 多个条件字段之间的逻辑运算符(and/or)。
RelationOperator string,equals 条件字段的关系运算符(equals/regexp/contains/startwith)。
FieldConditions Map,其中fieldKey和fieldValue为String类型,无默认值(必填) 字段名和表达式的键值对。

`ConditionAction`类型说明

参数 类型,默认值 说明
type string,无默认值(必填) 行动类型,可选值是processor_add_fields/processor_drop。
IgnoreIfExist bool,false 当相同的键存在时是否要忽略。
Fields Map,其中fieldKey和fieldValue为String类型,无默认值(必填) 附加字段的键值对。
DropKeys Array,其中value为String,无默认值(必填) 丢弃字段。

样例

  • 采集配置(使用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"
}

文章大纲