一、查詢持續性
到目前為止,我們只是在表達式瀏覽器中運行查詢。雖然查看該查詢的輸出很方便,但結果仍然是臨時存儲在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
