Prometheus警报管理器模板更改

时间:2019-05-08 12:25:23

标签: go prometheus

我有运行有模板的Prometheus警报管理器,并且正在获取电子邮件主题,如下所示

  

[FIRING:6]异常的网络吞吐量输出(thanos group_b aws_us_b   instance_191基础结构监视-prometheus-node警告)

警报名称后面的所有值都是标签。 这是模板主题代码

{{ define "__subject" }}[{{ .Status | toUpper }} {{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}]  {{ .GroupLabels.SortedPairs.Values | join " " }}  {{ if gt (len .CommonLabels) (len .GroupLabels) }} ({{ with .CommonLabels.Remove .GroupLabels.Names }}   {{ .Values | join " " }}   {{ end }}) {{ end }}{{ end }}

我只想修改此内容以得到关注

[FIRING:6]异常的网络吞吐量输出(group_b instance_191) 只有组名和实例名

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您可以将模板替换为以下内容:

{{ define "__subject" }}[{{ .Status | toUpper }} {{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.alertname }} ({{ .GroupLabels.group }} {{ .GroupLabels.instance }})

不确定groupinstance标签在所有警报中都不通用(例如,如果您在多个组和/或实例中触发了警报)会发生什么情况。也许您只会得到一个空字符串,也许是null。根据某些brief testing in the Go playground的说法,您似乎可能会得到<no value>。如果您不想这么做,可以尝试Go template's {{if }} action

类似

{{ if .GroupLabels.group }}{{ .GroupLabels.group }}{{ end }}