天天看點

Prometheus遠端資料存儲方案之PostgreSQL

今天看到德哥分享的基于postgresql的prometheus資料遠端存儲方案,于是有了本文的實驗。

通常,prometheus的外置存儲方案有好幾種選擇,例如influxdb,m3db, es,postgresql。

m3db一般在雲原生環境下,用的更趁手些。

這裡我們示範下postgresql的遠端存儲方案(可讀可寫),具體看下面的實驗。

實驗環境:

    centos7.4

    pg11-git-1921 編譯安裝版

參考文檔: 

    https://blog.csdn.net/qq_43303221/article/details/88574693#cmake_34_50   編譯安裝 timescaledb 擴充

    https://studygolang.com/articles/13522?fr=sidebar   遠端存儲的介紹

    https://github.com/timescale/prometheus-postgresql-adapter   prometheus-postgresql-adapter的官方文檔介紹

    https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write  官方文檔

    https://github.com/digoal/blog/blob/master/201910/20191027_04.md    德哥blog

    https://github.com/timescale/pg_prometheus     pg_prometheus擴充的官方文檔

1、安裝llvm

2、安裝cmake-3.4以上的版本

3、編譯安裝pg11帶jit子產品

4、安裝timescaledb擴充

即可完成timescaledb擴充的安裝

編輯pg的配置檔案,修改如下:

完成後重新開機pg程序

然後,登入到pg中,建立擴充:

5、安裝pg_prometheus擴充

6、啟動prometheus-postgresql-adapter

直接到https://github.com/timescale/prometheus-postgresql-adapter 下載下傳解壓prometheus-postgresql-adapter

7、使用prometheus連接配接adapter端口:

vim /usr/local/prometheus/prometheus.yml  在最後加2個配置;

說明: 我這裡設定的read_recent為false,表示查詢prometheus近期資料不要到pg庫裡來撈資料,而是直接查prometheus本地緩存的資料,這樣提高查詢的速度并且能降低pg庫的負載。

不足:

    目前的配置來看,我們同僚運作的prometheus和pg庫, 存放同樣曆史周期的的metrics,pg庫的體積遠遠超過了prometheus的體積。

    pg庫的metrics_values表已經 40 mb,此時的prometheus的data目錄才 16mb 。 磁盤空間占用上,相差接近3倍。

優化方案待定:

    調整remote_write 寫入政策,通過drop操作來降低存儲到pg的metrics的體積?

繼續閱讀