区分每个警报,但它们都显示为红色

问题描述 投票:0回答:1

我想将严重警报标记为红色,警告警报标记为橙色,正常警报标记为绿色。但是,当所有三个警报同时发送时,它们都会显示为红色。我希望每个 Slack Alert 通知颜色都能被区分。顺便说一句,它们都是红色的,如下图所示。

这是我的 Grafana 警报模板。

{{ define "slack_title" }}
  {{ if gt (len .Alerts.Firing) 0 }}
  🔥 {{ len .Alerts.Firing }} alert(s) firing
  {{ end }}
  {{ if gt (len .Alerts.Resolved) 0 }}
  ✅ {{ len .Alerts.Resolved }} alert(s) resolved
  {{ end }}
{{ end }}

{{ define "slack_message" }}
  {{ if gt (len .Alerts.Firing) 0 }}
    {{ range .Alerts.Firing }} {{ template "slack_alert_firing" .}} {{ end }} {{ end }}
  {{ if gt (len .Alerts.Resolved) 0 }}
    {{ range .Alerts.Resolved }} {{ template "slack_alert_resolved" .}} {{ end }} {{ end }}
{{ end }}

{{/* alert */}}
{{ define "slack_alert_firing" }}
🔥 Alert Fired
Cluster: {{ .Labels.Cluster }}
Instance: {{ reReplaceAll ":9100" "" .Labels.instance }}
Value: {{ .Annotations.Value }}
Node: {{ reReplaceAll "aks-" "" .Labels.nodename }}
Severity: {{ .Labels.severity }}
{{ end }}

{{ define "slack_alert_resolved" }}
✅ Alert Resolved
Cluster: {{ .Labels.Cluster }}
Instance: {{ reReplaceAll ":9100" "" .Labels.instance }}
Value: {{ .Annotations.Value }}
Node: {{ reReplaceAll "aks-" "" .Labels.nodename }}
Severity: Normal
{{ end }}

{{/* Color of Slack attachment (appears as line next to alert )*/}}
{{ define "slack.monzo.color" -}}
    {{ if eq .Status "firing" -}}
        {{ if eq .CommonLabels.severity "warning" -}}
            warning
        {{- else if eq .CommonLabels.severity "critical" -}}
            danger
        {{- else -}}
            #439FE0
        {{- end -}}
    {{ else -}}
    good
    {{- end }}
{{- end }}

enter image description here

grafana slack go-templates grafana-alerts grafana-templating
1个回答
0
投票

不知道您是否能够解决该问题,但我的方法是使用通知策略来触发 3 个不同的警报(1 个用于严重警报,1 个用于警告,1 个用于已解决的事件)。

通过这样做,您可以同时发送多条消息,每条消息都有相应的颜色。

https://grafana.com/docs/grafana/latest/alerting/fundamentals/notifications/notification-policies/

© www.soinside.com 2019 - 2024. All rights reserved.