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…

相关文章
相关标签/搜索