数据过滤类插件用于根据条件过滤日志,根据过滤结果选择是否采集该日志记录。
数据过滤插件概览
日志服务提供以下多种类型的数据过滤插件,请按需要进行选择。
插件名称 | 类型 | 功能说明 |
过滤处理 | 原生 | 通过设置“白名单”正则表达式,仅采集字段值完全匹配指定正则条件的日志。 |
过滤日志 | 拓展 | 支持两种过滤模式:
|
功能入口
当您需要使用Logtail插件处理日志时,您可以在创建或修改Logtail配置时,添加插件。具体操作,请参见处理插件概述。
原生插件与拓展插件的区别
原生插件:C++实现,性能更强。
拓展插件:Go实现,生态丰富且灵活,当业务日志过于复杂,无法使用原生插件处理时,可以考虑使用拓展插件。
拓展插件性能限制
使用拓展插件进行日志处理时,LoongCollector会消耗更多的资源(以CPU为主),如有需求可以调整LoongCollector参数配置进行日志传输延时过长优化。
当原始数据量的生成速度超过5 MB/s时,不建议使用过于复杂的插件组合来处理日志,可以使用拓展插件进行简单处理,再通过数据加工完成进一步处理。
日志采集限制
拓展插件对文本日志的处理采用行模式,即文件级别的元数据(例如
__tag__:__path__、__topic__等)会被存放到每一条日志中。添加拓展插件后会影响和Tag相关的功能:
过滤处理插件(原生)
过滤处理插件支持根据日志字段值来进行日志过滤。
配置说明
参数名称 | 说明 |
白名单 | 只采集符合白名单条件的日志,您需要设置目标字段名称和用于过滤的正则表达式。此处的正则表达式仅支持全文匹配,不支持关键词部分匹配。如何配置正则表达式,请参见正则表达式入门教程。 各个白名单之间为与关系。相关示例如下:
|
过滤日志插件(拓展)
使用processor_filter_regex插件或processor_filter_key_regex插件过滤日志。此处介绍各个插件的参数说明和配置示例。
使用限制
文本日志和容器标准输出只支持表单配置方式,其余输入源只支持JSON配置方式。
Go语言的正则表达式引擎基于RE2实现,相比PCRE引擎存在以下限制:
命名分组语法差异
Go使用
(?P<name>...)语法,而非PCRE的(?<name>...)语法。不支持的正则模式
断言:
(?=...)、(?!...)、(?<=...)、(?<!...)。条件表达式:
(?(condition)true|false)。递归匹配:
(?R)、(?0)。子程序引用:
(?&name)、(?P>name)。原子组:
(?>...)。
建议使用Regex101等调试正则时,避免使用以上不支持的正则模式,否则插件将无法处理。
processor_filter_regex(按值正则过滤)
processor_filter_key_regex(按键正则过滤)
相关文档
通过API接口配置Logtail流水线:
通过控制台配置处理插件:

