Prometheus学习笔记之设置存储时间为30天不生效

0x00 概述

Prometheus升级到2.23进行测试发现,设置存储时间为30天未生效,根据官方说明手册,实际运行后发现数据只能存储几个小时。。。。

--storage.tsdb.retention.time=30d

--storage.tsdb.retention.size=512MB

经过排查发现是上面两个参数相互覆盖导致,测试运行发现这个两个参数,任意1个达到了阈值,就会删除过期的数据。

这里犯了一个马虎的错误,没细看描述,把--storage.tsdb.retention.size理解成了1.x版本的chunk size参数了。

 

0x01 描述

Prometheus提供了本地存储,即tsdb时序数据库,本地存储给Prometheus带来了简单高效的使用体验,prometheus2.0以后压缩数据能力也得到了很大的提升。可以在单节点的情况下满足大部分用户的监控需求。

但本地存储也限制了Prometheus的可扩展性,带来了数据持久化等一系列的问题。为了解决单节点存储的限制,prometheus没有自己实现集群存储,而是提供了远程读写的接口,让用户自己选择合适的时序数据库来实现prometheus的扩展性。

Prometheus 1.x版本的TSDB(V2存储引擎)基于LevelDB,并且使用了和Facebook Gorilla一样的压缩算法,能够将16个字节的数据点压缩到平均1.37个字节。

Prometheus 2.x版本引入了全新的V3存储引擎,提供了更高的写入和查询性能,经过使用发现查询更快,用户体验大升级。

 

容器版本的promtheus这次也同步升级到了2.23,解决以前单个service pod出现内存OOM的问题,现在内存使用比较稳定,不会出现以前内存占用步步高升的情况了。

另外7.x版本的Grafana UI效果和配色总体感觉比6.x看起来偏冷,扁平化明显。

 

# 启动参数
./prometheus 
--config.file=./prometheus.yml 
--web.listen-address=0.0.0.0:19091 
--web.enable-lifecycle 
--storage.tsdb.path=/data/PromDB 
--storage.tsdb.retention.time=30d 
--query.timeout=2m 
--log.level=info 
--log.format=ogfmt 
--storage.tsdb.retention.size=2TB 
--storage.tsdb.no-lockfile 
--storage.tsdb.wal-compression --rules.alert.resend-delay=5s

 

0x02 推荐

2.x版本翻译推荐 https://github.com/feixuek/prometheus/tree/master/prometheus

 

上一篇:时间序列数据库(TSDB)初识与选择


下一篇:Prometheus运行参数详解