如何在警报规则中显示指标值

时间:2019-08-19 10:35:52

标签: prometheus prometheus-alertmanager

我在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中,我不能在模板或不知道该怎么做

1 个答案:

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