Prometheus配置规则

半兽人 发表于: 2019-07-23   最后更新时间: 2020-10-22 14:48:21  
{{totalSubscript}} 订阅, 4,006 游览

配置规则

Prometheus支持可以配置,然后定期执行的两种规则: recording rules(记录规则)alerting rules(警告规则)。为了在Prometheus系统中包括规则,我们需要创建一个包含规则语句的文件,并通过在Prometheus配置rule_fields字段加载这个记录规则文件。

这些规则文件可以通过像Prometheus服务发送SIGNUP信号量,实时重载记录规则。如果所有的记录规则有正确的格式和语法,则这些变化能够生效。

语法检查规则

在没有启动Prometheus服务之前,想快速知道一个规则文件是否正确,可以通过安装和运行Prometheus的promtool命令行工具检验:

go get github.com/prometheus/prometheus/cmd/promtool
promtool check-rules /path/to/examples.rules

当记录规则文件是有效的,则这个检查会打印出解析到规则的文本表示,并以返回值0退出程序。

如果有任何语法错误的话,则这个命令行会打印出一个错误信息到标准输出,并以返回值1退出程序。无效的输入参数,则以返回值2退出程序。

记录规则

记录规则允许你预先计算经常需要的,或者计算复杂度高的表达式,并将结果保存为一组新的时间序列数据。查询预计算结果通常比需要时进行计算表达式快得多。对于dashboard是非常有用的,因为dashboard需要实时刷新查询表达式的结果。

为了增加一个新记录规则,增加下面的记录规则到你的规则文件中:

\<new time series name\>[{\<label overrides\>}] = \<expression to record\>

例子:

# 计算每个job的http请求总数,保存到新的度量指标中
job:http_inprogree_requests:sum = sum(http_inprogress_requests) by (job)

# 放弃老标签,写入新标签的结果时间序列数据:
new_time_series{label_to_change="new_value", label_to_drop=""} = old_time_series

记录规则的执行周期有Prometheus的配置文件中的evaluate_interval指定。规则语句的右侧表达式一旦被执行,则新的时间戳key为当前时间,value为右边表达式的样本值,新的度量指标名称和标签列表为左边名称。

更新于 2020-10-22

查看Prometheus更多相关的文章或提一个关于Prometheus的问题,也可以与我们一起分享文章