使用Recoding Rules優化效能

2022-06-11 04:51:11 字數 1592 閱讀 7461

通過promql可以實時對prometheus中採集到的樣本資料進行查詢,聚合以及其它各種運算操作。而在某些promql較為複雜且計算量較大時,直接使用promql可能會導致prometheus響應超時的情況。

這時需要一種能夠類似於後台批處理的機制能夠在後台完成這些複雜運算的計算,對於使用者而言只需要查詢這些運算結果即可。

prometheus通過recoding rule規則支援這種後台計算的方式,可以實現對複雜查詢的效能優化,提高查詢效率。

在prometheus配置檔案中,通過rule_files定義recoding rule規則檔案的訪問路徑。

rule_files:

[ - ... ]

每乙個規則檔案通過以下格式進行定義:

groups:

[ - ]

乙個簡單的規則檔案可能是這個樣子的:

expr: sum(http_inprogress_requests) by (job)rule_group的具體配置項如下所示:

# the name of the group. must be unique within a file.

name: # how often rules in the group are evaluated.

[ interval: | default = global.evaluation_interval ]

rules:

[ - ... ]

與告警規則一致,乙個group下可以包含多條規則rule。

# the name of the time series to output to. must be a valid metric name.

record: # the promql expression to evaluate. every evaluation cycle this is

# evaluated at the current time, and the result recorded as a new set of

# time series with the metric name as given by 'record'.

expr: # labels to add or overwrite before storing the result.

labels:

[ : ]

根據規則中的定義,prometheus會在後台完成expr中定義的promql表示式計算,並且將計算結果儲存到新的時間序列record中。同時還可以通過labels為這些樣本新增額外的標籤。

這些規則檔案的計算頻率與告警規則計算頻率一致,都通過global.evaluation_interval定義:

global:

[ evaluation_interval: | default = 1m ]

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...

學習使用CSDN markdown使用

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...