采集过程中暂停采集器,checkpoint中保存的文件offset不正确 #1657
Unanswered
samtangweicheng
asked this question in
Help
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
我们基于flusher_opentelemetry做了二次开发用于上报数据。
新的flusher_xxx_otlp的flush方法中会读取各个logRecord的"file_offset"标签,然后打印出来。
在测试的时候,我们发现重启采集器后有漏采的情况:
1、采集配置:
{ "enable" : true, "global" : { "EnableTimestampNanosecond" : true }, "inputs" : [ { "Type" : "input_file", "FilePaths" : [ "/root/zhl/log_file1.log4" ], "MaxDirSearchDepth" : 5, "ExcludeFilePaths" : [ ], "TailSizeKB" : 10485760, "AppendingLogPositionMeta" : true, "AllowingIncludedByMultiConfigs" : true } ], "flushers" : [ { "Type" : "flusher_xxx_otlp", "Logs" : { "Endpoint" : "xxxxxx.xxxxxx.cn:12345", "Timeout" : 10000, "WaitForReady" : true, "Compression" : "gzip" } } ] }
2、启动采集器后,用touch命令更新目标文件的修改时间,让采集器开始采集。/root/xxx/log_file1.log2是一个20M大小左右的文件。
3、1-2秒后给采集器发送sigTrem信号停止采集器;
4、重新运行采集器,然后在用touch命令更新目标文件的修改时间,让采集器继续采集。
在第三步之后,打开ilogtail.LOG日志文件如下,能看到是从0开始采集器的:
logtail_plugin.LOG日志中也打印出了最后一次发送的数据包的最大offset是5229336
但是此时查看checkpoint文件,发现其中的offset是8388480
重启后,ilogtail.LOG中显示是从8388480处继续采集
中间的5229336到8388480 这段日志漏采了。
Beta Was this translation helpful? Give feedback.
All reactions