您好,登錄后才能下訂單哦!
這篇文章主要講解了“Prometheus引入‘@’修飾符的方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Prometheus引入‘@’修飾符的方法”吧!
你有沒有選擇過10個時間序列,但得到不是10個,而是100個?如果有,這是給你的。讓我帶你了解一下潛在的問題是什么,以及我是如何解決它的。
目前,topk()查詢僅作為一個即時查詢才有意義,你得到確切的k個結果,但當你作為一個范圍查詢運行它時,你可以得到更多的結果,因為每一步都是獨立計算的。這個@修飾符允許你修復范圍查詢中所有步驟的排名。
在Prometheus v2.25.0中,我們引入了一個新的PromQL修飾符@。與offset修飾符讓你對向量選擇器、范圍向量選擇器和子查詢的求值進行相對于求值時間的固定時間偏移類似,@修飾符讓你對這些選擇器的求值進行固定,而不考慮查詢求值時間。該語法的功勞歸于Bj?rn Rabenstein。
<vector-selector> @ <timestamp>
<range-vector-selector> @ <timestamp>
<subquery> @ <timestamp>
<timestamp>是一個unix時間戳,用float文字描述。
例如,查詢http_requests_total @ 1609746000返回的是http_requests_total在2021-01-04T07:40:00+00:00的值。查詢rate(http_requests_total[5m] @ 1609746000)返回同時http_requests_total的5分鐘速率。
此外,start()和end()也可以作為特殊值作為@修飾符的值。對于范圍查詢,它們分別解析到范圍查詢的開始和結束,并且對所有步驟保持相同。對于即時查詢,start()和end()都解析為計算時間。
回到topk()修復的討論,下面的查詢繪制了這些系列中http_requests_total的1m速率,它們的最后一個1h速率位于前5位。因此,現在你可以理解topk(),甚至可以將其作為一個范圍查詢,精確地繪制出k個結果。
rate(http_requests_total[1m]) # This acts like the actual selector.
and
topk(5, rate(http_requests_total[1h] @ end())) # This acts like a ranking function which filters the selector.
類似地,topk()排名可以用其他函數代替,比如histogram_quantile(),它現在只用于即時查詢。rate()可以用<aggregation>_over_time()等替換。讓我們知道你如何使用這個新的修飾符!
@修飾符默認是禁用的,可以使用標志--enable-feature=promql-at-modifier來啟用。
感謝各位的閱讀,以上就是“Prometheus引入‘@’修飾符的方法”的內容了,經過本文的學習后,相信大家對Prometheus引入‘@’修飾符的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。