数据过滤类插件用于根据条件过滤日志,根据过滤结果选择是否采集该日志记录。
数据过滤插件概览
日志服务提供以下多种类型的数据过滤插件,请按需要进行选择。
|
插件名称 |
类型 |
功能说明 |
|
过滤处理 |
原生 |
通过设置“白名单”正则表达式,仅采集字段值完全匹配指定正则条件的日志。 |
|
过滤日志 |
拓展 |
支持两种过滤模式:
|
功能入口
当您需要使用Logtail插件处理日志时,您可以在创建或修改Logtail配置时,添加插件。具体操作,请参见处理插件概述。
原生插件与拓展插件的区别
原生插件:C++实现,性能更强。
拓展插件:Go实现,生态丰富且灵活,当业务日志过于复杂,无法使用原生插件处理时,可以考虑使用拓展插件。
-
拓展插件性能限制
-
日志采集限制
-
拓展插件对文本日志的处理采用行模式,即文件级别的元数据(例如
__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流水线:
-
通过控制台配置处理插件:

