PromQL有一個名為irate的函數,用於計算距離向量中時間序列的每秒瞬時增長率。
CPU利用率:
100-avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)*100 #顯示1分鍾窗口內使用的平均CPU百分比
CPU Saturation(飽和度):
node_load1 > on (instance)count by (instance)(node_cpu_seconds_total{mode="idle"})
內存使用率:
node_memory_MemTotal_bytes - 主機上的總內存
node_memory_MemFree_bytes - 主機上的空閑內存
node_memory_Buffers_bytes_bytes - 緩沖區緩存中的內存
node_memory_Cached_bytes_bytes - 頁面緩存中的內存
都是以字節為單位的。(free -b)
(node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Cached_bytes +
node_memory_Buffers_bytes)) / node_memory_MemTotal_bytes * 100
磁盤使用百分比:
(node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) /node_filesystem_size_bytes{mountpoint="/"} * 100
(node_filesystem_size_bytes{device=~"/dev.*"} - node_filesystem_free_bytes{device=~"/dev.*"}) /node_filesystem_size_bytes{device=~"/dev.*"} * 100 #使用正則表達式來匹配

注意:
(1)不能使用匹配空字符串的正則表達式。
(2)對於不匹配的正則表達式,還有一個!~運算符。
預估磁盤還有多久爆滿:???
Prometheus提供了一種機制,通過名為predict_linear的函數,可以預示磁盤增長率,在未來多長時間可以將磁盤占滿。
predict_linear(node_filesystem_free_bytes{mountpoint="/"}[1h], 10*3600) < 0
監控服務狀態:
node_systemd_unit_state{name="docker.service"} // 只查詢 docker服務
node_systemd_unit_state{name="docker.service",state="active"} // 返回活動狀態
node_systemd_unit_state{name="docker.service"} == 1 // 返回當前服務的狀態
注:比較二進制運算符:==。這將檢索所有值為1、名稱標簽為docker.service的指標。
up metric:
監視特定節點狀態的另一個有用指標:up ,如果實例是健康的,度量就被設置為1 ,失敗返回 - 或 0

向量匹配:???
有兩種向量匹配:一對一和多對一(或一對多)。
實驗中是有兩條數據的,他們的metadata metric分別為SH,CD

一對一匹配:node_systemd_unit_state{name="docker.service"} == 1 and on (instance, job)metadata{datacenter="SH"}

多對一和一對多匹配是指“one”一側的每個向量元素可以與“many”一側的多個元素匹配。使用group_left或group_right修飾符顯式地指定這些匹配,其中left或right決定了哪個向量具有更高的基數。