在Prometheus的rule文件中使用判断语句和变量

文章目录

话不多说,直接给出示例,相信一眼就能看到怎么用了

1
2
3
4
5
6
7
8
9
10
- name: hostStatsAlert300s
interval: 5m
rules:
- alert: 磁盘使用率超过阈值告警
expr: ((node_filesystem_size_bytes - node_filesystem_avail_bytes) / node_filesystem_size_bytes) * on(instance) group_left(nodename) (node_uname_info) > 0.7
labels:
severity: "{{ if gt $value 0.9 }} 紧急告警 {{ else if gt $value 0.8 }} 重要告警 {{ else if gt $value 0.7 }} 次要告警 {{ end }}"
annotations:
summary: "主机 {{ $labels.nodename }} 目录 {{ $labels.mountpoint }} 磁盘使用率过高"
description: "主机{{ $labels.nodename }} 磁盘使用率过高,告警阈值:{{ if gt $value 0.9 }}90%{{ else if gt $value 0.8 }}80%{{ else if gt $value 0.7 }}70%{{ end }},当前使用率:{{ $value | humanizePercentage }},目录:{{ $labels.mountpoint }}"
  • $labels:在web界面查询出来的所有标签值都能用

  • $value:警报触发时的表达式计算结果