• 欢迎来到小爱博客,一个分享互联网IT技术的网站,喜欢就收藏吧!

prometheus定义记录规则record和报警规则alert

prometheus 小爱 3个月前 (07-30) 49次浏览 已收录 0个评论 扫描二维码

配置规则

Prometheus支持两种类型的规则,可以对其进行配置,然后定期进行评估:记录规则和警报规则。要将规则包含在Prometheus中,请创建一个包含必要规则语句的文件,并让Prometheus通过Prometheus配置中rule_files字段加载该文件。规则文件使用YAML。

可以通过发送SIGHUP到Prometheus进程在运行时重新加载规则文件。仅当所有规则文件格式正确时,才应用更改。

语法检查规则

要在不启动Prometheus服务器的情况下快速检查规则文件在语法上是否正确,请安装并运行Prometheus的promtool命令行实用工具:

go get github.com/prometheus/prometheus/cmd/promtool
promtool check rules /path/to/example.rules.yml

当该文件在语法上有效时,检查器将已解析规则的文本表示形式打印到标准输出,然后以0返回状态退出。

如果存在任何语法错误或无效的输入参数,则会将错误消息打印为标准错误,并以1返回状态退出。

记录规则

记录规则使您可以预先计算经常需要或计算量大的表达式,并将其结果保存为一组新的时间序列。这样,查询预先计算的结果通常比每次需要原始表达式都要快得多。这对于仪表板特别有用,仪表板每次刷新时都需要重复查询相同的表达式。

记录和警报规则存在于规则组中。组中的规则以规则的时间间隔顺序运行。记录和警报规则的名称必须是有效的度量标准名称

规则文件的语法为:

groups:
  [ - <rule_group> ]

一个简单的示例规则文件将是:

groups:
  - name: example
    rules:
    - record: job:http_inprogress_requests:sum
      expr: sum by (job) (http_inprogress_requests)

<rule_group>

# The name of the group. Must be unique within a file.
name: <string>

# How often rules in the group are evaluated.
[ interval: <duration> | default = global.evaluation_interval ]

rules:
  [ - <rule> ... ]

<rule>

记录规则的语法为:

# The name of the time series to output to. Must be a valid metric name.
record: <string>

# 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: <string>

# Labels to add or overwrite before storing the result.
labels:
  [ <labelname>: <labelvalue> ]

警报规则的语法为:

# The name of the alert. Must be a valid label value.
alert: <string>

# The PromQL expression to evaluate. Every evaluation cycle this is
# evaluated at the current time, and all resultant time series become
# pending/firing alerts.
expr: <string>

# Alerts are considered firing once they have been returned for this long.
# Alerts which have not yet fired for long enough are considered pending.
[ for: <duration> | default = 0s ]

# Labels to add or overwrite for each alert.
labels:
  [ <labelname>: <tmpl_string> ]

# Annotations to add to each alert.
annotations:
  [ <labelname>: <tmpl_string> ]

小爱博客 , 版权所有
转载请注明原文链接:prometheus定义记录规则record和报警规则alert
喜欢 (1)
【你的支持, 我的动力】
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址