Prometheus學習系列(十四)之配置規則

1、配置規則

Prometheus支持兩種類型的規則,這些規則能夠按期配置,而後按期評估:記錄規則和警報規則。 要在Prometheus中包含規則,請建立包含必要規則語句的文件,並讓Prometheus經過Prometheus配置中的rule_files字段加載文件。 規則文件使用YAML。git

經過將SIGHUP發送到Prometheus進程,能夠在運行時從新加載規則文件。 僅當全部規則文件格式正確時纔會應用更改。github

2、語法檢查規則

要在不啓動Prometheus服務器的狀況下快速檢查規則文件在語法上是否正確,請安裝並運行Prometheus的promtool命令行實用工具:bash

go get github.com/prometheus/prometheus/cmd/promtool
promtool check rules /path/to/example.rules.yml
複製代碼

當文件在語法上有效時,檢查器將已解析規則的文本表示打印到標準輸出,而後以0返回狀態退出。服務器

若是存在任何語法錯誤或無效的輸入參數,則會向標準錯誤輸出錯誤消息,並以1返回狀態退出。工具

3、錄製規則

錄製規則容許您預先計算常常須要或計算上昂貴的表達式,並將其結果保存爲一組新的時間序列。 所以,查詢預先計算的結果一般比每次須要時執行原始表達式快得多。 這對於儀表板尤爲有用,儀表板須要在每次刷新時重複查詢相同的表達式。lua

記錄和警報規則存在於規則組中。 組內的規則以固定間隔順序運行。spa

規則文件的語法是:命令行

groups:
  [ - <rule_group> ]
複製代碼

一個簡單的示例規則文件將是:code

groups:
  - name: example
    rules:
    - record: job:http_inprogress_requests:sum
      expr: sum(http_inprogress_requests) by (job)
複製代碼
3.1 <rule_group>
# 組的名稱。 在文件中必須是惟一的。
name: <string>

# 評估組中的規則的頻率。
[ interval: <duration> | default = global.evaluation_interval ]

rules:
  [ - <rule> ... ]
複製代碼
3.2 <rule>

記錄規則的語法是:進程

# 要輸出的時間序列的名稱。 必須是有效的度量標準名稱。
record: <string>

# 要評估的PromQL表達式。 每一個評估週期都會在當前時間進行評估,並將結果記錄爲一組新的時間序列,其中度量標準名稱由「記錄」給出。
expr: <string>

# 在存儲結果以前添加或覆蓋的標籤。
labels:
  [ <labelname>: <labelvalue> ]
複製代碼

警報規則的語法是:

# 警報的名稱。 必須是有效的度量標準名稱。
alert: <string>

# 要評估的PromQL表達式。 每一個評估週期都會在當前時間進行評估,而且全部結果時間序列都會成爲待處理/觸發警報。
expr: <string>

# 警報一旦被退回這段時間就會被視爲開啓。
# 還沒有解僱的警報被認爲是未決的。
[ for: <duration> | default = 0s ]

# 爲每一個警報添加或覆蓋的標籤。
labels:
  [ <labelname>: <tmpl_string> ]

# 要添加到每一個警報的註釋。
annotations:
  [ <labelname>: <tmpl_string> ]
複製代碼
4、連接

Prometheus官網地址:prometheus.io/

個人Github:github.com/Alrights/pr…

相關文章
相關標籤/搜索