模板化

一般来说,在告警规则文件的 annotations 中使用summary描述告警的概要信息,description用于描述告警的详细信息。同时 Alertmanager 的 UI 也会根据这两个标签值,显示告警信息。

为了让告警信息具有更好的可读性,Prometheus 支持模板化 label 和 annotations 的中标签的值。

  • 通过$labels.<labelname>变量可以访问当前告警实例中指定标签的值。

  • 通过 $value 则可以获取当前 PromQL 表达式计算的样本值。

groups:
- name: example
  rules:

  # Alert for any instance that is unreachable for >5 minutes.
  - alert: InstanceDown
    expr: up == 0
    for: 5m
    labels:
      severity: page
    annotations:
      summary: "Instance {{ $labels.instance }} down"
      description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 5 minutes."

  # Alert for any instance that has a median request latency >1s.
  - alert: APIHighRequestLatency
    expr: api_http_request_latencies_second{quantile="0.5"} > 1
    for: 10m
    annotations:
      summary: "High request latency on {{ $labels.instance }}"
      description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"

最后更新于