Skip to content

Commit 0f7d8ae

Browse files
authored
Update email template for AlertingNG (grafana#32691)
Signed-off-by: Ganesh Vernekar <[email protected]>
1 parent 95470d7 commit 0f7d8ae

File tree

3 files changed

+164
-123
lines changed

3 files changed

+164
-123
lines changed

emails/templates/ng_alert_notification.html

+78-62
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
[[Subject .Subject "[[.Title]]"]]
22

33
<style>
4-
.alert.alert-warning {
4+
.alert-warning {
55
background-color: #E6522C;
66
}
7-
.alert.alert-good {
7+
.alert-good {
88
background-color: #68B90F;
99
}
1010
</style>
@@ -28,73 +28,89 @@ <h3 style="font-weight: bold; font-style: italic;">[[.Title]]</h3>
2828
</table>
2929

3030
<table class="row">
31+
<tr>
32+
[[ if gt (len .Alerts.Firing) 0 ]]
33+
<td class="alert-warning twelve column last">
34+
[[ .Alerts | len ]] alert[[ if gt (len .Alerts) 1 ]]s[[ end ]] for
35+
[[ range .GroupLabels.SortedPairs ]]
36+
[[ .Name ]]=[[ .Value ]]
37+
[[ end ]]
38+
</td>
39+
[[ else ]]
40+
<td class="alert-good twelve column last">
41+
[[ .Alerts | len ]] alert[[ if gt (len .Alerts) 1 ]]s[[ end ]] for
42+
[[ range .GroupLabels.SortedPairs ]]
43+
[[ .Name ]]=[[ .Value ]]
44+
[[ end ]]
45+
</td>
46+
[[ end ]]
47+
</td>
48+
</tr>
3149
<tr>
3250
<td class="last">
33-
<table>
51+
<table class="twelve columns">
52+
[[ if gt (len .Alerts.Firing) 0 ]]
3453
<tr>
35-
[[ if gt (len .Alerts.Firing) 0 ]]
36-
<td class="alert alert-warning">
37-
[[ else ]]
38-
<td class="alert alert-good">
39-
[[ end ]].
40-
[[ .Alerts | len ]] alert[[ if gt (len .Alerts) 1 ]]s[[ end ]] for
41-
[[ range .GroupLabels.SortedPairs ]]
42-
[[ .Name ]]=[[ .Value ]]
43-
[[ end ]]
54+
<td class="twelve last">
55+
<h5 style="font-weight: bold;">([[ .Alerts.Firing | len ]]) Firing</h5>
4456
</td>
4557
</tr>
58+
[[ end ]]
59+
[[ range .Alerts.Firing ]]
4660
<tr>
47-
<td class="">
48-
<table>
49-
[[ if gt (len .Alerts.Firing) 0 ]]
50-
<tr>
51-
<td class="">
52-
<strong>([[ .Alerts.Firing | len ]]) Firing</strong>
53-
</td>
54-
</tr>
55-
[[ end ]]
56-
[[ range .Alerts.Firing ]]
57-
<tr>
58-
<td class="">
59-
<strong>Labels</strong><br />
60-
[[ range .Labels.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
61-
[[ if gt (len .Annotations) 0 ]]<strong>Annotations</strong><br />[[ end ]]
62-
[[ range .Annotations.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
63-
<a href="[[ .GeneratorURL ]]">Source</a><br />
64-
</td>
65-
</tr>
66-
[[ end ]]
61+
<td class="four">
62+
<h5 style="font-weight: bold">Labels</h5>
63+
</td>
64+
<td class="eight last">
65+
[[ if gt (len .Annotations) 0 ]]<h5 style="font-weight: bold">Annotations</h5>[[ end ]]
66+
</td>
67+
</tr>
68+
<tr>
69+
<td class="four">
70+
[[ range .Labels.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
71+
<a href="[[ .GeneratorURL ]]">Source</a><br />
72+
</td>
73+
<td class="eight last">
74+
[[ range .Annotations.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
75+
</td>
76+
</tr>
77+
[[ end ]]
6778

68-
[[ if gt (len .Alerts.Resolved) 0 ]]
69-
[[ if gt (len .Alerts.Firing) 0 ]]
70-
<tr>
71-
<td class="">
72-
<br />
73-
<hr />
74-
<br />
75-
</td>
76-
</tr>
77-
[[ end ]]
78-
<tr>
79-
<td class="">
80-
<strong>([[ .Alerts.Resolved | len ]]) Resolved</strong>
81-
</td>
82-
</tr>
83-
[[ end ]]
84-
[[ range .Alerts.Resolved ]]
85-
<tr>
86-
<td class="">
87-
<strong>Labels</strong><br />
88-
[[ range .Labels.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
89-
[[ if gt (len .Annotations) 0 ]]<strong>Annotations</strong><br />[[ end ]]
90-
[[ range .Annotations.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
91-
<a href="[[ .GeneratorURL ]]">Source</a><br />
92-
</td>
93-
</tr>
94-
[[ end ]]
95-
</table>
79+
[[ if gt (len .Alerts.Resolved) 0 ]]
80+
[[ if gt (len .Alerts.Firing) 0 ]]
81+
<tr>
82+
<td class="twelve">
83+
<br />
84+
<hr />
85+
<br />
86+
</td>
87+
</tr>
88+
[[ end ]]
89+
<tr>
90+
<td class="twelve last">
91+
<h5 style="font-weight: bold;">([[ .Alerts.Resolved | len ]]) Resolved</h5>
9692
</td>
9793
</tr>
94+
[[ end ]]
95+
[[ range .Alerts.Resolved ]]
96+
<tr>
97+
<td class="six">
98+
<h5 style="font-weight: bold">Labels</h5>
99+
</td>
100+
<td class="six last">
101+
[[ if gt (len .Annotations) 0 ]]<h5 style="font-weight: bold">Annotations</h5>[[ end ]]
102+
</td>
103+
</tr>
104+
<tr>
105+
<td class="six">
106+
[[ range .Labels.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
107+
<a href="[[ .GeneratorURL ]]">Source</a><br />
108+
</td>
109+
<td class="six last">
110+
[[ range .Annotations.SortedPairs ]][[ .Name ]] = [[ .Value ]]<br />[[ end ]]
111+
</td>
112+
</tr>
113+
[[ end ]]
98114
</table>
99115
</td>
100116
</tr>
@@ -115,8 +131,8 @@ <h3 style="font-weight: bold; font-style: italic;">[[.Title]]</h3>
115131
</td>
116132
</tr>
117133
</table>
118-
</td>
119-
<td class="center six">
134+
</td>
135+
<td class="center six">
120136
<table class="better-button" align="center" border="0" cellspacing="0" cellpadding="0">
121137
<tr>
122138
<td align="center" class="better-button-alt" bgcolor="#efefef">

pkg/services/ngalert/notifier/channels/email.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func getTitleFromTemplateData(data *template.Data) string {
103103
if data.Status == string(model.AlertFiring) {
104104
title += fmt.Sprintf(":%d", len(data.Alerts.Firing()))
105105
}
106-
title += "]" + strings.Join(data.GroupLabels.SortedPairs().Values(), " ") + " "
106+
title += "] " + strings.Join(data.GroupLabels.SortedPairs().Values(), " ") + " "
107107
if len(data.CommonLabels) > len(data.GroupLabels) {
108108
title += "(" + strings.Join(data.CommonLabels.Remove(data.GroupLabels.Names()).Values(), " ") + ")"
109109
}

0 commit comments

Comments
 (0)