你需要精通一種監控-PromQL聚合操作
阿新 • • 發佈:2019-07-06
-
sum
(求和) -
min
(最小值) -
max
(最大值) -
avg
(平均值) -
stddev
(標準差) -
stdvar
(標準差異) -
count
(計數) -
count_values
(對value進行計數) -
bottomk
(後n條時序) -
topk
(前n條時序) -
quantile
(分佈統計)
使用聚合操作的語法如下:
<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)]
其中只有count_values
quantile
, topk
, bottomk
支援引數(parameter)。
without用於從計算結果中移除列舉的標籤,而保留其它標籤。by則正好相反,結果向量中只保留列出的標籤,其餘標籤則移除。通過without和by可以按照樣本的問題對資料進行聚合。
例如:
sum(http_requests_total) without (instance)
等價於
sum(http_requests_total) by (code,handler,job,method)
如果只需要計算整個應用的HTTP請求總量,可以直接使用表示式:
sum(http_requests_total)
count_values用於時間序列中每一個樣本值出現的次數。count_values會為每一個唯一的樣本值輸出一個時間序列,並且每一個時間序列包含一個額外的標籤。
例如:
count_values("count", http_requests_total)
topk和bottomk則用於對樣本值進行排序,返回當前樣本值前n位,或者後n位的時間序列。
獲取HTTP請求數前5位的時序樣本資料,可以使用表示式:
topk(5, http_requests_total)
quantile用於計算當前樣本資料值的分佈情況quantile(φ, express)其中0 ≤ φ ≤ 1。
例如,當φ為0.5時,即表示找到當前樣本資料中的中位數:
quantile(0.5,