prometheus四種metric型別
prometheus中儲存的資料都是時序型,其資料模型都是如下:
metric_name{label=value,…} value timestamp
下文中說的資料型別只是客戶端的封裝
prometheus 的4種metric
prometheus的客戶端中提供了4種metric,對於服務端來說並沒有使用這些metric,服務端只是簡單當成是獨立的時序資料來使用
Counter:計數器
是一種累加型指標,指可以增加或者重置為0,可以被用來做請求數統計,成功數統一等等。不能用來代表可以下降的指標
Gauge:測量器
一種可以增加或者減少的測量器,可以用來做記憶體使用、溫度測量等指標測量
Histogram:直方圖
用於統計指標的分佈,例如請求耗時的分佈情況,需要注意的是prometheus的直方圖是一種累積性的直方圖,舉例說明:
假設分佈的桶位分別是buckets[] = {.005, .01, .025, .05, .075, .1, .25, .5, .75, 1, 2.5, 5, 7.5, 10}, 落在0.01桶內的值包含了落在0.005桶的值,這種累積型的直方圖對於更簡單
prometheus的客戶端採用了三個指標來表示直方圖:
metric_name_bucket:不同耗時上限,所採集到的值
metric_name_sum: 統計的值的總和,例如請求耗時總和
metric_name_count:統計的總數,例如請求的總數量
prometheus也提供了histogram_quantile函式來計算分位點,舉例說明:
http_request_duration_seconds_bucket直方圖http_request_duration_seconds的桶位指標,計算過去10分鐘90%的請求的最大耗時:histogram_quantile(0.9, rate(http_request_duration_seconds_bucket[10m]))
注意: 這種計算是一種估算,假設在bucket中,資料的分散式線性的,進行估算
Summary:分位統計器
跟Histogram類似,也用於計算資料分位,但是不同的是,Histogram將三個指標上報到服務端,用promsql提供函式進行計算,Summary直接在客戶端計算好之後進行上報,這種比較消耗客戶端資源,summary也儲存了3個指標:
metric_name_φ-quantiles
metric_name_sum
metric_name_count