1. 程式人生 > 實用技巧 >Prometheus學習筆記之設定儲存時間為30天不生效

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