问题背景
在Prometheus查询部分指标时需要通过将现有的规则组合成一个复杂的表达式,才能查询到对应的指标结果,比如在查询CPU使用率时,参考如下
100 - (avg by (instance) (irate(node_cpu_seconds_total[5m])) * 100)
在Prometheus界面可以通过该规则查询出所有端点的CPU使用率,但是这样引入了一个问题,就是在进一步使用过滤规则时不是很方便或者不能用。
解决方案
针对上述的问题,推荐的做法是将符合规则添加到记录规则中,生成一个新的规则,步骤如下:
1.在prometheus.yml文件的记录规则下添加记录规则文件prometheus_rules.yml,参考如下:
rule_files:
- 'prometheus_rules.yml'
2.在prometheus_rule.yml文件中添加规则信息如下:
groups:
- name: example
rules:
- record:cpu_utilization_ratio //新的规则名
expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total[5m])) * 100) //规则表达式