使用度量標準http_requests_total
返回全部時間序列:git
http_requests_totalgithub
使用度量標準http_requests_total
以及給定的job
和handler
標籤返回全部時間系列:web
http_requests_total{job="apiserver", handler="/api/comments"}正則表達式
返回相同向量的整個時間範圍(在本例中爲5分鐘),使其成爲範圍向量:api
http_requests_total{job="apiserver", handler="/api/comments"}[5m]瀏覽器
請注意,致使範圍向量的表達式不能直接繪製,而是在表達式瀏覽器的表格("Console")視圖中查看。app
使用正則表達式,您只能爲名稱與特定模式匹配的做業選擇時間序列,在本例中爲全部以server
結尾的做業。 請注意,這會進行子字符串匹配,而不是完整的字符串匹配:函數
http_requests_total{job=~"server$"}google
Prometheus中的全部正則表達式都使用RE2語法。code
要選擇除4xx以外的全部HTTP狀態代碼,您能夠運行:
http_requests_total{status!~"^4..$"}
此查詢返回過去30分鐘的5分鐘http_requests_total
指標率,分辨率爲1分鐘。
rate(http_requests_total[5m])[30m:1m]
這是嵌套子查詢的示例。 deri
函數的子查詢使用默認分辨率。 請注意,沒必要要地使用子查詢是不明智的。
max_over_time(deriv(rate(distance_covered_total[5s])[30s:5s])[10m:])
使用http_requests_total
指標名稱返回全部時間序列的每秒速率,在過去5分鐘內測量:
rate(http_requests_total[5m])
假設http_requests_total
時間序列都有標籤job
(按做業名稱扇出)和instance
(按做業實例扇出),咱們可能想要總結全部實例的速率,所以咱們獲得的輸出時間序列更少,但仍然 保留job
維度:
sum(rate(http_requests_total)[5m]) by (job)
若是咱們有兩個具備相同維度標籤的不一樣指標,咱們能夠對它們應用二元運算符,而且兩側具備相同標籤集的元素將匹配並傳播到輸出。 例如,此表達式爲每一個實例返回MiB中未使用的內存(在虛構的羣集調度程序上公開它運行的實例的這些度量標準):
(instance_memory_limit_byte - instant_memory_usage_bytes) / 1024 / 1024
相同的表達式,但由應用程序總結,能夠這樣寫:
sum( instance_memory_limit_bytes - instance_memory_usage_bytes) by (app, proc) / 1024 / 1024
若是相同的虛構集羣調度程序爲每一個實例公開了以下所示的CPU使用率指標:
instance_cpu_time_ns{app="lion", pro="web", rev="34d0f99", env="prod", job="cluster-manager"} instance_cpu_time_ns{app="elephant", proc="worker", rev="34d0f99", env="prod", job="cluster-manager"} instance_cpu_time_ns{app="turtle", proc="api", rev="4d3a513", env="prod", job="cluster-manager"} ...
...咱們能夠按應用程序(app
)和進程類型(proc
)分組排名前3位的CPU用戶:
topk(3, sum(rate(instance_cpu_time_ns[5m])) by(app, proc))
假設此度量標準包含每一個運行實例的一個時間系列,您能夠計算每一個應用程序運行實例的數量,以下所示:
count(instance_cpu_time_ns) by (app)
Prometheus官網地址:prometheus.io/ 個人Github:github.com/Alrights/pr…