[v10.0.x] Alerting: Fix email template for text/plain emails (#70111)

Alerting: Fix email template for text/plain emails (#69951)

This commit fixes the email template for text/plain emails to
support custom messages. It also fixes the default template,
removing extra whitespace and showing Summary and Description
annotations separate from the other annotations.

(cherry picked from commit c1e3362e21)

Co-authored-by: George Robinson <george.robinson@grafana.com>
This commit is contained in:
Grot (@grafanabot)andGeorge Robinson authored and GitHub committed 2023-06-14 23:18:05 +01:00
1 parent 20916f597c
commit 39cd2f19e5
2 files changed
+117 -70

No files matched your search

+59 -35
View File
@@ -1,38 +1,62 @@
[[HiddenSubject .Subject "[[.Title]]"]]
[[- define "__default_message" -]]
You have [[ len .Alerts.Firing ]] firing alert(s), and [[ len .Alerts.Resolved ]] resolved alert(s) for [[ .GroupLabels ]]
[[.Title]]
----------------
[[ if .Alerts.Firing -]]
([[ len .Alerts.Firing ]]) FIRING
-----------
[[ template "__default_alerts_summarize" .Alerts.Firing ]]
[[- end ]]
[[ .Alerts | len ]] alert[[ if gt (len .Alerts) 1 ]]s[[ end ]] for
[[ range .GroupLabels.SortedPairs ]]
[[ .Name ]] = [[ .Value ]]
[[ end ]]
[[ if gt (len .Alerts.Firing) 0 ]]([[ .Alerts.Firing | len ]]) Firing[[ end ]]
[[ range .Alerts.Firing ]]
Labels:
[[ range .Labels.SortedPairs ]]
[[ .Name ]] = [[ .Value ]]
[[ end ]]
[[ if gt (len .Annotations) 0 ]]
Annotations:
[[ end ]]
[[ range .Annotations.SortedPairs ]]
[[ .Name ]] = [[ .Value ]]
[[ end ]]
[[ end ]][[ if gt (len .Alerts.Resolved) 0 ]]([[ .Alerts.Resolved | len ]]) Resolved[[ end ]]
[[ range .Alerts.Resolved ]]
Labels:
[[ range .Labels.SortedPairs ]]
[[ .Name ]] = [[ .Value ]]
[[ end ]]
[[ if gt (len .Annotations) 0 ]]
Annotations:
[[ end ]]
[[ range .Annotations.SortedPairs ]]
[[ .Name ]] = [[ .Value ]]
[[ end ]]
[[ end ]]View your Alert rule:
[[.RuleUrl]]
[[ if .Alerts.Resolved -]]
([[ len .Alerts.Resolved ]]) RESOLVED
-------------
[[ template "__default_alerts_summarize" .Alerts.Resolved ]]
[[- end ]]
Go to the Alerts page: [[ .AlertPageUrl ]]
[[- end -]]
Go to the Alerts page:
[[.AlertPageUrl]]
[[- define "__default_alerts_summarize" -]]
[[- range . ]]
[[ template "__default_alert_labels" . ]]
[[ template "__default_alert_annotations" . ]]
[[- end ]]
[[- end -]]
[[- define "__default_alert_labels" -]]
[[- if gt (len .Labels) 3 -]]
Labels: [[ template "__default_sorted_pairs" .Labels ]]
[[- else -]]
Labels: [[ .Labels.SortedPairs ]]
[[- end -]]
[[- end -]]
[[- define "__default_alert_annotations" -]]
[[- $annotations := .Annotations -]]
[[- if index $annotations "summary" -]]
Summary: [[ index .Annotations "summary" ]]
[[- $annotations = $annotations.Remove (toStrings (list "summary")) ]]
[[ end -]]
[[- if index $annotations "description" -]]
Description: [[ index $annotations "description" ]]
[[- $annotations = $annotations.Remove (toStrings (list "description")) ]]
[[ end -]]
[[- if index $annotations "runbook_url" -]]
Runbook: [[ index $annotations "runbook_url" ]]
[[- $annotations = $annotations.Remove (toStrings (list "runbook_url")) ]]
[[ end -]]
[[- if $annotations -]]
Annotations: [[ template "__default_sorted_pairs" $annotations ]]
[[ end -]]
[[- end -]]
[[- define "__default_sorted_pairs" -]]
[[ range .SortedPairs ]]
[[ .Name ]] = [[ .Value ]]
[[- end ]]
[[- end -]]
[[- if .Message -]]
[[ .Message ]]
[[ else -]]
[[ template "__default_message" . ]]
[[- end ]]
+58 -35
View File
@@ -1,41 +1,64 @@
{{HiddenSubject .Subject "{{.Title}}"}}
{{- define "__default_message" -}}
You have {{ len .Alerts.Firing }} firing alert(s), and {{ len .Alerts.Resolved }} resolved alert(s) for {{ .GroupLabels }}
{{.Title}}
----------------
{{ if .Alerts.Firing -}}
({{ len .Alerts.Firing }}) FIRING
-----------
{{ template "__default_alerts_summarize" .Alerts.Firing }}
{{- end }}
{{ .Alerts | len }} alert{{ if gt (len .Alerts) 1 }}s{{ end }} for
{{ range .GroupLabels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{ end }}
{{ if gt (len .Alerts.Firing) 0 }}({{ .Alerts.Firing | len }}) Firing{{ end }}
{{ range .Alerts.Firing }}
Labels:
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{ end }}
{{ if gt (len .Annotations) 0 }}
Annotations:
{{ end }}
{{ range .Annotations.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{ end }}
{{ end }}{{ if gt (len .Alerts.Resolved) 0 }}({{ .Alerts.Resolved | len }}) Resolved{{ end }}
{{ range .Alerts.Resolved }}
Labels:
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{ end }}
{{ if gt (len .Annotations) 0 }}
Annotations:
{{ end }}
{{ range .Annotations.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{ end }}
{{ end }}View your Alert rule:
{{.RuleUrl}}
{{ if .Alerts.Resolved -}}
({{ len .Alerts.Resolved }}) RESOLVED
-------------
{{ template "__default_alerts_summarize" .Alerts.Resolved }}
{{- end }}
Go to the Alerts page: {{ .AlertPageUrl }}
{{- end -}}
Go to the Alerts page:
{{.AlertPageUrl}}
{{- define "__default_alerts_summarize" -}}
{{- range . }}
{{ template "__default_alert_labels" . }}
{{ template "__default_alert_annotations" . }}
{{- end }}
{{- end -}}
{{- define "__default_alert_labels" -}}
{{- if gt (len .Labels) 3 -}}
Labels: {{ template "__default_sorted_pairs" .Labels }}
{{- else -}}
Labels: {{ .Labels.SortedPairs }}
{{- end -}}
{{- end -}}
{{- define "__default_alert_annotations" -}}
{{- $annotations := .Annotations -}}
{{- if index $annotations "summary" -}}
Summary: {{ index .Annotations "summary" }}
{{- $annotations = $annotations.Remove (toStrings (list "summary")) }}
{{ end -}}
{{- if index $annotations "description" -}}
Description: {{ index $annotations "description" }}
{{- $annotations = $annotations.Remove (toStrings (list "description")) }}
{{ end -}}
{{- if index $annotations "runbook_url" -}}
Runbook: {{ index $annotations "runbook_url" }}
{{- $annotations = $annotations.Remove (toStrings (list "runbook_url")) }}
{{ end -}}
{{- if $annotations -}}
Annotations: {{ template "__default_sorted_pairs" $annotations }}
{{ end -}}
{{- end -}}
{{- define "__default_sorted_pairs" -}}
{{ range .SortedPairs }}
{{ .Name }} = {{ .Value }}
{{- end }}
{{- end -}}
{{- if .Message -}}
{{ .Message }}
{{ else -}}
{{ template "__default_message" . }}
{{- end }}
Sent by Grafana v{{.BuildVersion}} (c) {{now | date "2006"}} Grafana Labs