-
Template name:
telegram.message
-
Content:
{{ define "alert_list" }}{{ range . }}{{ .Labels.alertname }} {{ range .Annotations.SortedPairs }}<strong>{{ .Name }}</strong>: {{ .Value }} {{ end }}| {{ if gt (len .GeneratorURL) 0 }}<a href="{{ .GeneratorURL }}">source</a> | {{ end }}{{ if gt (len .SilenceURL) 0 }}<a href="{{ .SilenceURL }}">silence</a> | {{ end }}{{ if gt (len .DashboardURL) 0 }}<a href="{{ .DashboardURL }}">dashboard</a> | {{ end }}{{ if gt (len .PanelURL) 0 }}<a href="{{ .PanelURL }}">panel</a> |{{ end }} — {{ end }}{{ end }} {{ define "telegram.message" }} {{ if gt (len .Alerts.Firing) 0 }}<strong>FIRING!!!</strong> — {{ template "alert_list" .Alerts.Firing }} {{ if gt (len .Alerts.Resolved) 0 }} {{ end }}{{ end }}{{ if gt (len .Alerts.Resolved) 0 }}<strong>Resolved</strong> — {{ template "alert_list" .Alerts.Resolved }} {{ end }}{{ end }}
-
Contact point | Optional Telegram settings | Message:
{{ template "telegram.message" . }}
-
Add verbose annotations to your alerts. Example:
The <code>{{ $labels.host }}</code> host is low on free space! Used: {{ $values.display.Value }}%
(wheredisplay
is one of the queries). -
I usually add the following queries:
data
(the datasource query),metric
(the reduce expression),condition
, anddisplay
, which isround($metric)
. Multi-dimensional rules documentation.
Also, check out this fork by @gelldur, this templeate is much more cmprehensive.
Hello! Can you help me please?
Your template worked very well, but when an alert returns to the normal state, the firing of "resolved" gives an error due to the variable that I put in the description of my alert... for some reason it is empty when the alert is normal.
I put {{ $values.B0.Value }}, which is the only option that actually returned values when it is in "Firing" state... all other attempts, like A0, A1, B1... does not return values... and query B is conditional, right? So... I don't know what to do :c