首页 > 解决方案 > prometheus alertmanager 规则的自动标签

问题描述

我正在使用prometheus-community/prometheus图表

我想将以下标签自动添加到任何警报管理器规则触发

这样我就不会手动将这些标签添加到每个警报规则中。

 - alert: NGINXTooMany400s
   expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
   for: 1m
   labels:
     severity: warning
     env: prod
     cluster: project-prod-eks              <---------------HOW to inject them?
   annotations:
     description: Too many 4XXs
     summary: More than 5% of all requests returned 4XX, this requires your attention

这样我就可以做类似的事情

 - alert: NGINXTooMany400s
   expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
   for: 1m
   labels:
     severity: warning
   annotations:
     description: Too many 4XXs on {{ $labels.env }} / {{ $labels.cluster }}  <----- THIS
     summary: More than 5% of all requests returned 4XX, this requires your attention

有任何想法吗?

标签: kubernetesprometheusprometheus-alertmanager

解决方案


您可以添加external_labels到您的prometheus.yml

global:
  # The labels to add to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    env: prod
    cluster: project-prod-eks

社区图表在values.yml中有它:

serverFiles:
  prometheus.yml:
    global:
      external_labels:
        foo: bar
    ...

推荐阅读