时间戳过滤
简介
processor_timestamp_filter_native插件根据时间戳过滤事件,丢弃不在指定时间范围内的事件。插件支持从事件的时间戳字段或事件自身的__time__字段获取时间戳,并根据配置的上界和下界进行过滤。
源代码:ProcessorTimestampFilterNative.cpp
版本
版本说明
推荐版本:【待发布】
配置参数
参数
类型
是否必填
默认值
说明
Type
string
是
/
插件类型。固定为processor_timestamp_filter_native。
SourceKey
string
否
""
时间字段名。如果为空,则使用事件自身的__time__字段(即事件时间戳)。如果指定了字段名,则从该字段读取时间戳字符串。时间戳格式必须为数字(秒、毫秒或纳秒),处理时会进行检查。
TimestampPrecision
string
否
"second"
时间戳精度。可选值:
- "second":秒级时间戳
- "millisecond":毫秒级时间戳
- "nanosecond":纳秒级时间戳
该参数同时影响SourceKey字段的时间戳解析和UpperBound、LowerBound的精度。
UpperBound
Long
否
max timestamp
上界时间戳。超过该时间的事件将被丢弃。默认值为最大时间戳值(即不过滤)。
LowerBound
Long
否
0
下界时间戳。早于该时间的事件将被丢弃。默认值为0。
使用说明
时间戳来源:
如果
SourceKey为空,插件使用事件自身的__time__字段(事件时间戳)进行过滤。如果
SourceKey不为空,插件从指定字段读取时间戳字符串。时间戳必须是纯数字格式。
时间戳精度:
TimestampPrecision参数同时影响SourceKey字段的时间戳解析和UpperBound、LowerBound的精度。例如,如果
TimestampPrecision为"millisecond",则SourceKey字段的值会被视为毫秒级时间戳,UpperBound和LowerBound的值也会被当作毫秒级时间戳处理。
边界处理:
时间戳等于
LowerBound或UpperBound的事件会被保留(闭区间)。时间戳小于
LowerBound或大于UpperBound的事件会被丢弃。
错误处理:
如果
SourceKey字段不存在,事件会被保留(不丢弃)。如果
SourceKey字段的值无法识别为有效的时间戳,事件会被保留(不丢弃)。
样例
样例1:使用事件时间戳过滤
采集文件/home/test-log/app.log,只保留时间戳在指定范围内的事件。
输入
采集配置
输出
样例2:使用字段时间戳过滤
采集包含时间戳字段的日志,根据时间戳字段进行过滤。
输入
采集配置
输出
样例3:使用毫秒级时间戳过滤
处理包含毫秒级时间戳的日志。
输入
采集配置
输出
Last updated