prometheus rules
prometheus 持久查询
有三种方法可以使我们的持久查询(不用每次都要输入查询规则):
- 记录规则 - 从查询中创建新的指标。
- 警报规则 - 从查询生成警报。
- 可视化 - 使用像Grafana这样的仪表盘来可视化查询。
记录规则
1、记录规则是一种计算新时间序列的方法,特别是从输入的时间序列中聚合的时间序列。我们可以这样做:
- 跨多个时间序列生成聚合。
- 预计算昂贵的查询,即消耗大量时间或计算能力的查询。
- 生成一个时间序列,我们可以用它来生成警报
2、配置记录规则
记录规则存储在Prometheus服务器上,存储在Prometheus服务器加载的文件中。规则是自动计算的,频率由prometheus.yml 全局块中的evaluation_interval参数控制。
cd /usr/local/prometheus/conf mkdir -p rules cd rules touch node_rules.yml 修改 prometheus.yml 文件 rule_files: - "rules/node_rules.yml"
3、添加记录规则
命名规则建议:
- level:metric:operations
例如: instance: node_cpu:avg_rate5m
node_rules.yml文件内容
groups: - name: node_rules interval: 10s rules: - record: instance:node_cpu:avg_rate5m expr: 100 - avg (irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100 labels: metric_type: shhnwangjian
多条
groups: - name: node_rules interval: 10s rules: - record: instance:node_cpu:avg_rate5m expr: 100 - avg (irate(node_cpu_seconds_total{job="node_exporter",mode="idle"}[5m])) by (instance) * 100 labels: metric_type: shhnwangjian - record: instance:node_memory_usage:percentage expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes)) / node_memory_MemTotal_bytes * 100 - record: instance:root:node_filesystem_usage:percentage expr: (node_filesystem_size_bytes{mountpoint="/"} - node_filesystem_free_bytes{mountpoint="/"}) / node_filesystem_size_bytes{mountpoint="/"} * 100
修改配置文件后重加载
ps -ef|grep prom |grep -v grep|awk '{print $2}'|xargs kill -HUP