我在prometheus alertmanager中创建了一条规则,该规则以百分比表示安装点上的最小空间-除此之外,我想显示多少最小空间(以GB为单位),但我不想对安装点进行硬编码以显示千兆字节,我想要使用来自“ expr”而不是硬编码的$ labels.mountpoint。
我在此链接上发现了类似的问题 https://github.com/prometheus/alertmanager/issues/549 但在这种情况下,使用硬编码的挂载点
这是我的规则
- alert: OutOfDiskSpace
expr: node_filesystem_free_bytes / node_filesystem_size_bytes * 100 < 10
for: 1m
labels:
severity: Critical
annotations:
description: "Disk is almost full (< 10% left)\n {{ $labels.instance_short }}\n {{ $labels.mountpoint }}\n VALUE = {{ printf `node_filesystem_avail_bytes / 1024 / 1024 / 1024` | query | first | value | humanize }}"
当我在node_filesystem_avail_bytes / 1024 / 1024 / 1024
中使用VALUE
时,我没有从表达式中获取挂载点,但是我知道实际值在哪里-它在$ labels.mountpoint中,我不能在模板或不知道该怎么做
答案 0 :(得分:1)
- alert: OutOfDiskSpace
expr: node_filesystem_free_bytes / node_filesystem_size_bytes * 100 < 10
for: 5s
labels:
severity: Critical
annotations:
description: "Disk is almost full (< 10% left)\n {{ $labels.instance_short }}\n {{ $labels.mountpoint }}\n VALUE = {{ printf \"node_filesystem_avail_bytes{mountpoint='%s'}\" .Labels.mountpoint | query | first | value | humanize1024 }}"