如何在警报规则普罗米修斯中显示指标值

How to display values of metrics in alert rules prometheus

我在 prometheus alertmanager 中创建了一条规则,它以百分比形式告诉挂载点上的最少 space - 除此之外,我想显示以千兆字节为单位的最少 space ,但我没有想硬编码一个挂载点以显示千兆字节,我想使用来自 "expr" 的 $labels.mountpoint ,而不是硬编码。

我在这个问题上发现了类似的问题link 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 }}"

当我在 VALUE 中使用 node_filesystem_avail_bytes / 1024 / 1024 / 1024 时,我没有从表达式中获取挂载点,但我知道实际值在哪里 - 它在 $labels.mountpoint 中,我不能在模板中使用或不知道如何操作

  - 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 }}"