CommonAnnotations无法用于AlertManager

时间:2019-03-29 23:24:19

标签: kubernetes slack prometheus-alertmanager

我正在尝试通过Prometheus设置Alertmanager。我已经写了我的alert-rules和alertmanager.yaml文件。我可以通过alertmanager将警报发送到松弛状态。

问题

我无法美化我的警报。我想发送描述,警报名称,警报摘要。

我尝试使用CommonAnnotations来发送描述,名称和警报摘要。但不幸的是,它仅适用于“ DeadMansSwitch”。对于所有其他警报,我无法在空闲频道上看到任何内容。

#PrometheusRules

- alert: esWorkerACKSPM
        annotations:
          description: Buzzsaw esworkers acknowledgment per minute.
          summary: Prometheus' alert notification :- Buzzsaw average esworker acknowledgment per minute is lower than 10.
        expr: avg(bz_ackspm{broker=~"ldbb-.*", group="esworkers"}) < 10
        for: 5m
        labels:
          severity: urgent   
#alertmanager.yaml

global:
templates:
- 'https://github.com/prometheus/alertmanager/blob/master/template/default.tmpl'
route:
  group_by: ['severity']
  group_wait: 3s
  group_interval: 5s
  repeat_interval: 20s
  receiver: mail-receiver
  routes:
  - match:
      severity: urgent
    receiver: critical-mail-receiver
    routes:
receivers:
- name: 'mail-receiver'
  slack_configs:
  - api_url: https://hooks.slack.com/services/XXXXXX/XXXXX1/e7AXXXXXXopzmHNTJmL
    channel: '#alertmanager-testing'
    text: '{{ .CommonAnnotations.summary }}'
- name: 'critical-mail-receiver'
  slack_configs:
  - api_url: https://hooks.slack.com/services/T0XXXXCL/XXX6G4/VUVKZ8CnXXXXXXXzZguoXq
    channel: '#place'
    text: '{{ .CommonAnnotations.summary }} '

预期结果:-闲置通道上的警报摘要。

实际结果:-只能在松弛状态下查看DeadMansSwitch(警报)的摘要。对于其他警报,它仅显示

[FIRING:2] urgent (monitoring/kube-prometheus-prometheus-prometheus)

1 个答案:

答案 0 :(得分:0)

这实际上是期望的行为。您指定了分组,并且您作为示例发布的邮件是分组邮件([FIRING:2]表示匹配的两个相同规则)。因此,省略了其他信息字段(在您的情况下为文本,但也包括footer等),因为没有(简便)方法以编程方式判断应显示哪些分组警报。

要显示哪个?他们中的第一个或全部(添加冗长性和大量文本/混乱,尤其是如果将两个以上的警报组合在一起的话)?

因此,如果要始终显示其他文本,则可以删除分组配置。