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
-----
 
posted @ 2020-02-07 11:18  _幸会  阅读(1180)  评论(0编辑  收藏  举报