无论何时我们重新启动Prometheus服务,都会造成2-3小时的数据丢失。以前没有发生过这种情况,但是当我们开始向其中添加更多的数据/集成时,我们就遇到了这个问题。
试图谷歌但没有找到任何答案,是否有人面临同样的问题?
普罗米修斯版本: 2.13.1
任何线索都会有帮助的TIA。
发布于 2022-06-29 21:35:16
Prometheus在预写日志 (又名WAL )中存储了长达2个小时的最近刮过的指标。它每两个小时运行一次压缩作业,将WAL中的数据转换为持久块。Prometheus将数据从WAL转换为一个持久的块(例如,当SIGINT或SIGTERM信号被发送到它并且控制过程等待Prometheus进程成功完成时)。
在您的例子中,Prometheus很可能通过SIGKILL信号或out of memory事件(又名OOM)关闭。在这种情况下,最近收集到的样本(长达2小时)的WAL数据没有存储在持久块中,因此会丢失。
Prometheus尝试在下一次启动时重放WAL (例如从WAL中恢复数据),但是如果WAL数据由于Prometheus先前的不干净关闭而损坏,则可能会失败。详情请参见这篇文章。
试试我工作的另一个类似普罗米修斯的监控系统- VictoriaMetrics。它不使用WAL,而是每秒钟将数据存储到持久块。因此,它可能只丢失在不干净关闭前的最后一秒收集的数据。
https://stackoverflow.com/questions/72720898
复制相似问题