prometheus監控中,對於采集過來的數據統一稱為metrics數據
metrics是一種對采樣數據的總稱(metrics並不代表某一種具體的數據格式 是一種對於度量計算單位的抽象)
metrics數據類型
Gauges
最簡單的度量指標,只有一個簡單的返回值,或者叫瞬時狀態,例如我們度量一個待處理隊列中任務的個數
更簡單的例子
例如:假如我們要監控硬盤容量或者內存的使用量,那么我們就應該使用Gauges的metrics格式來度量
因為硬盤的容量或者內存的使用量是隨着時間的推移不斷瞬時變化的
這種變化沒有規律,當前是多少采集回來的就是多少
既不能肯定是一直持續增長也不能肯定是一直降低
是多少就是多少 這種就是Gauges使用類型的代表
CPU的上下浮動就是采集使用Gauges形式的
如圖是CPU浮動
Counters
Counter就是計數器,從數據量0開始累積 在理想狀態下只能是永遠增長不會降低
舉個例子
比如用戶訪問量
Histogram
Histogram近似百分百估算值
比如Http響應時間
使用一段時間內總的平均值會出現偏差
通過Histogram 可以分別統計出全部用戶的響應時間
可以很清晰看到我們當前系統中處於基本正常狀態的有多少百分百的用戶
k/v數據格式
對於采集回來的數據,必須要以一種具體的數據格式供我們查看和使用
當一個exporter被安裝和運行在監控服務器上以后使用curl命令可以返回數據
大多數exporter下載之后就提供了啟動命令,一般直接運行帶上一定參數就可以了
node_exporter
pushgateway
反向推送
為什么需要pushgateway
- exporter雖然采集的數據已經很豐富了,但是我們依然需要很多自制的監控數據非格式化的 自定制的
- exporter由於數據采集量大,其實很多數據或者說大部分數據在監控中用不到,用pushgateway定義一項數據節約資源
- 一個新定義的pushgateway遠遠比開發一個全新的exporter簡單快速
- exporter雖然已經很豐富,但是依然有很多我們需要采集的形式,exporter無法提供,或者說expoter還不支持,使用pushgateway可以任意靈活而且極快