5.prometheus通过记录规则持久查询
一、查询持续性
到目前为止,我们只是在表达式浏览器中运行查询。虽然查看该查询的输出很方便,但结果仍然是临时存储在Prometheus服务器上,我们可以通过以下三种方式使查询持久化:
* 记录规则:根据查询创建新指标
* 报警规则:从查询生成警报
* 可视化:使用Grafana等仪表板可视化查询
记录规则存储在Prometheus服务器上,位于Prometheus服务器加载的文件中。规则是自动计算的,频率则由prometheus.yml配置文件的global块中的evaluation_interval参数控制。
规则文件在Prometheus配置文件的rules_files块中指定。
二、示例
在prometheus.yml文件的同一文件夹中创建一个 名为rules的子文件夹,用于保存我们的记录规则,并且为节点指标创建一个名为node1_rules.yml的文件。
[root@node1 opt]# cd /opt/prometheus/ [root@node1 prometheus]# mkdir rules [root@node1 prometheus]# cd rules/ [root@node1 rules]# vim node1_rules.yml [root@node1 rules]# cat node1_rules.yml groups: - name: node1_rules rules: - record: instance:node_cpu:avg_rate1m expr: 100-avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)*100 labels: metric_type: aggregation [root@node1 prometheus]# vim prometheus.yml # 修改prometheus.yml,添加配置 rule_files: - "rules/node1_rules.yml" [root@node1 prometheus]# docker container rm -f prometheus-server #由于之前是挂载的prometheus.yml,所以重新启动一下prometheus-server,把rules挂到容器里。 [root@node1 prometheus]# docker run --name prometheus-server -d -p 9090:9090 -v /opt/prometheus/:/etc/prometheus/ prom/prometheus
浏览器访问该地址,可以查看到我们手动添加的rules:http://192.168.42.133:9090/rules
-----