我有运行有模板的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) 只有组名和实例名
我该如何实现?
答案 0 :(得分:1)
您可以将模板替换为以下内容:
{{ define "__subject" }}[{{ .Status | toUpper }} {{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.alertname }} ({{ .GroupLabels.group }} {{ .GroupLabels.instance }})
不确定group
或instance
标签在所有警报中都不通用(例如,如果您在多个组和/或实例中触发了警报)会发生什么情况。也许您只会得到一个空字符串,也许是null
。根据某些brief testing in the Go playground的说法,您似乎可能会得到<no value>
。如果您不想这么做,可以尝试Go template's {{if }}
action。
类似
{{ if .GroupLabels.group }}{{ .GroupLabels.group }}{{ end }}