prometheus監控實戰--數據


1 prometheus數據存儲方式

prometheus才用time-series(時間序列)的方式以一種自定義格式存儲在本地硬盤,本地TSDB以每兩小時為間隔來分block(塊)存儲,每一塊又分為多個chunk文件,chunk文件存放着采集的T-S數據,metadata和索引文件(index)

index文件是對metrics(prometheus中一次K/V采集數據叫做一個metrics)和labels進行索引,之后存儲在chunk,chunk作為存儲的基本單位

prometheus平時將采集的數據先都存在內存中,以類似緩存的方式用於加快搜索和訪問,當出現宕機時,prometheus的保護機制WAL可以將數據定期存入硬盤chunk中,並在重新啟動時恢復到內存中

通過啟動參數--storage.tsdb.path=“/data”指定tsdb路徑,即采集數據存放路徑,wal目錄下數據相當於對存放在內存中的近期數據的冷備

2 prometheus數據采集方式

prometheus的客戶端主要有兩種采集方式

pull主動拉取和push被動推送

pull:被監控主機先安裝各類exporters,exporter以守護進程方式運行,在主機系統上采集數據

exporter本身也是一個http_server,可以對htp請求作出相應,返回數據(K/V metrics)

prometheus server通過pull方式(HTTP get)去訪問每個節點上的exporter並采樣回需要的數據

push:客戶端或者服務端安裝pushgateway插件,使用運維自行開發的各種腳本把監控數據組織成K/V的形式 metrics形式發送給pushgateway,之后pushgateway再推送給prometheus

3 prometheus數據格式

prometheus監控中對於監控過來的數據統稱為metrics數據

metrics是一種對采樣數據的總稱(metrics並不代表具體的數據格式,是一種對於度量計算單位的抽象)

metrics的幾種數據類型:

gauges:最簡單的度量指標,只有一個簡單的返回值(瞬時狀態)

例如監控磁盤或者內存的使用量,那么就應該使用gauges格式來度量

counts: 從數據量為0開始累積計算,在理想狀態下只能永遠增長,不會降低

例如對用戶訪問量的采樣數據

histograms:統計數據的分布情況,比如最小值、最大值、中間值,還有中位數,75百分位,90百分位,95百分位,98百分位,99百分位,99.9百分位的值,代表的是一種近似的百分比估值

例如Http_response_time(http響應時間)代表是一次用戶http請求在系統傳輸和執行過程中總共花費的時間

通過histogram類型可以分別統計出全部用戶的響應時間中=0.05秒的有多少,00.05秒的有多少,>2秒的有多少

4 metrics

通過http訪問監控節點端口可得到export采集到的實時metrics數據,以K/V的形式展現和保存

curl localhost:9100/metrics
go_gc_duration_seconds{quantile="0"} 2.1286e-05

prometheus的每條指標數據由指標名稱和指標標簽(鍵值對)來標識,如下:

api_http_requests_total{methodPOST", handler="/messages"}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM