一奢入、簡單的時(shí)間序列選擇
使用度量標(biāo)準(zhǔn)http_requests_total
返回所有時(shí)間序列:
http_requests_total
使用度量標(biāo)準(zhǔn)http_requests_total
以及給定的job
和handler
標(biāo)簽返回所有時(shí)間系列:
http_requests_total{job="apiserver", handler="/api/comments"}
返回相同向量的整個(gè)時(shí)間范圍(在本例中為5分鐘)轴合,使其成為范圍向量:
http_requests_total{job="apiserver", handler="/api/comments"}[5m]
請(qǐng)注意力麸,導(dǎo)致范圍向量的表達(dá)式不能直接繪制掩缓,而是在表達(dá)式瀏覽器的表格("Console")視圖中查看霹菊。
使用正則表達(dá)式冬念,您只能為名稱與特定模式匹配的作業(yè)選擇時(shí)間序列椭住,在本例中為所有以server
結(jié)尾的作業(yè)崇渗。 請(qǐng)注意,這會(huì)進(jìn)行子字符串匹配京郑,而不是完整的字符串匹配:
http_requests_total{job=~"server$"}
Prometheus中的所有正則表達(dá)式都使用RE2語法宅广。
要選擇除4xx之外的所有HTTP狀態(tài)代碼,您可以運(yùn)行:
http_requests_total{status!~"^4..$"}
二些举、子查詢
此查詢返回過去30分鐘的5分鐘http_requests_total
指標(biāo)率跟狱,分辨率為1分鐘。
rate(http_requests_total[5m])[30m:1m]
這是嵌套子查詢的示例户魏。 deri
函數(shù)的子查詢使用默認(rèn)分辨率驶臊。 請(qǐng)注意,不必要地使用子查詢是不明智的叼丑。
max_over_time(deriv(rate(distance_covered_total[5s])[30s:5s])[10m:])
三关翎、使用函數(shù),操作符等
使用http_requests_total
指標(biāo)名稱返回所有時(shí)間序列的每秒速率鸠信,在過去5分鐘內(nèi)測(cè)量:
rate(http_requests_total[5m])
假設(shè)http_requests_total
時(shí)間序列都有標(biāo)簽job
(按作業(yè)名稱扇出)和instance
(按作業(yè)實(shí)例扇出)笤休,我們可能想要總結(jié)所有實(shí)例的速率,因此我們得到的輸出時(shí)間序列更少症副,但仍然 保留job
維度:
sum(rate(http_requests_total)[5m]) by (job)
如果我們有兩個(gè)具有相同維度標(biāo)簽的不同指標(biāo)店雅,我們可以對(duì)它們應(yīng)用二元運(yùn)算符,并且兩側(cè)具有相同標(biāo)簽集的元素將匹配并傳播到輸出贞铣。 例如闹啦,此表達(dá)式為每個(gè)實(shí)例返回MiB中未使用的內(nèi)存(在虛構(gòu)的群集調(diào)度程序上公開它運(yùn)行的實(shí)例的這些度量標(biāo)準(zhǔn)):
(instance_memory_limit_byte - instant_memory_usage_bytes) / 1024 / 1024
相同的表達(dá)式,但由應(yīng)用程序總結(jié)辕坝,可以這樣寫:
sum( instance_memory_limit_bytes - instance_memory_usage_bytes) by (app, proc) / 1024 / 1024
如果相同的虛構(gòu)集群調(diào)度程序?yàn)槊總€(gè)實(shí)例公開了如下所示的CPU使用率指標(biāo):
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"}
...
...我們可以按應(yīng)用程序(app
)和進(jìn)程類型(proc
)分組排名前3位的CPU用戶:
topk(3, sum(rate(instance_cpu_time_ns[5m])) by(app, proc))
假設(shè)此度量標(biāo)準(zhǔn)包含每個(gè)運(yùn)行實(shí)例的一個(gè)時(shí)間系列窍奋,您可以計(jì)算每個(gè)應(yīng)用程序運(yùn)行實(shí)例的數(shù)量,如下所示:
count(instance_cpu_time_ns) by (app)
四酱畅、鏈接
Prometheus官網(wǎng)地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus