Prometheus語法示例(1)

語言: CN / TW / HK

比如對於指標jvm_gc_memory_allocated_bytes_total

sum(jvm_gc_memory_allocated_bytes_total) //求累計瞬時值

sum_over_time(jvm_gc_memory_allocated_bytes_total[5m]) //求5分鐘內的累計值

jvm_gc_memory_allocated_bytes_total[5m] offset 10m  // 求10分鐘前的5分鐘區間的值序列

sum(http_requests_total) without (instance)
sum(http_requests_total) by (application, group)

http_requests_total根據application和group分組統計sum!

 

Prometheus根據目標功能和內容的不同,把指標分了4種類型(metric type):Counter(計數器)、Gauge(儀表盤)、Histogram(直方圖)、Summary(摘要);但是本質上都是指標,都是時間序列,只是進行了簡單的分類,更方便理解和溝通。

Counter型別的指標其工作方式和計數器一樣,只增不減(除非系統發生重置)。常見的監控指標,如http_requests_total,node_cpu都是Counter型別的監控指標。

Gauge型別的指標側重於反應系統的當前狀態。因此這類指標的樣本資料可增可減。常見指標如:node_memory_MemFree(主機當前空閒的內容大小)、node_memory_MemAvailable(可用記憶體大小)都是Gauge型別的監控指標。

通過Gauge指標,使用者可以直接檢視系統的當前狀態:node_memory_MemFree
對於Gauge型別的監控指標,通過PromQL內建函式delta()可以獲取樣本在一段時間返回內的變化情況。例如,計算CPU溫度在兩個小時內的差異:

delta(cpu_temp_celsius{host="zeus"}[2h])

Histogram和Summary:資料分佈

除了Counter和Gauge型別的監控指標以外,Prometheus還定義分別定義Histogram和Summary的指標型別,主用用於統計和分析樣本的分佈情況。