You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus Agent模式远程写入离线时的数据持久化咨询

Prometheus Agent 离线缓存与重传机制解答

remote write端点离线时的数据存储规则

Prometheus Agent会将待发送的时序元数据、样本数据持久化到磁盘,并非仅暂存在内存中。
测试场景下仅观测到lock文件与wal目录属于完全正常的运行表现:

  • Agent模式裁剪了普通Prometheus Server版本的本地时序数据库实现,不会生成常规的时序block块文件,WAL(预写日志)是其唯一的待发送数据持久化载体。
  • 所有采集到的、未收到remote write端点写入成功确认的样本,都会实时写入WAL目录下的二进制日志段文件,即使Agent进程重启、端点长时间离线,这部分持久化的数据也不会丢失。
  • WAL留存有默认阈值:默认最少保留2小时的待发送数据,可通过启动参数--storage.agent.retention.min-time调整最小留存时长、--storage.agent.retention.max-bytes调整WAL最大磁盘占用空间。如果端点离线时长超过配置阈值,最早的未发送数据会被主动清理,避免磁盘空间耗尽。

remote write端点恢复后的重传逻辑

Prometheus Agent的remote write模块基于WAL偏移量实现可靠重传,核心流程如下:

  • 每个remote write写入分片会独立维护已提交偏移量,标记WAL中已经被远端确认接收的最新数据位置。
  • 端点离线时,发送失败的批次不会更新已提交偏移量,客户端会按指数退避规则持续重试(初始重试间隔1s,最大重试间隔30s)。
  • 端点恢复连通后,客户端会直接从最后一次记录的已提交偏移量位置开始,顺序读取WAL中积压的所有未发送样本,按配置的批次大小打包推送到远端,直到所有积压数据全部发送完成、偏移量推进到最新采集位置,才会恢复正常的实时发送节奏,同时清理已经完成发送的旧WAL段文件。

补充说明:WAL文件为snappy压缩的二进制格式,直接查看文件内容无法识别明文时序数据,不要通过文件内容可读性判断是否写入了待发送数据。

内容的提问来源于stack exchange,提问作者TonyChopper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:39:13