Grafana - Telagram alert template

Источники

Установка Grafana описана в данной статье.

Настройка

Переходим в Alerting -> Contact points - http://host/alerting/notifications

Создаем новый поинт:

Разворачиваем вкладку Optional Telegram settings

  • Message - {{ template "mymessage" . }}

Теперь создадим шаблон mymessage, на который сослались. Нажимаем New template.

  • Template name - mymessage
  • Content:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{{ define "mymessage" }}
  {{ if gt (len .Alerts.Firing) 0 }}
    {{ len .Alerts.Firing }} firing:
    {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }}
  {{ end }}
  {{ if gt (len .Alerts.Resolved) 0 }}
    {{ len .Alerts.Resolved }} resolved:
    {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }}
  {{ end }}
{{ end }}

По той же схеме создаем еще одни шаблон с именем myalert и следующим содержимом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{{ define "myalert" }}
  <b>[{{.Status}}]</b> {{ .Labels.alertname }}
  {{with .ValueString}}Metric: {{. | reReplaceAll `[, ]*\[ var=.C.*?\],*` "" | reReplaceAll `. labels=.*?value=` " = "| reReplaceAll `.var=.` ""}}{{ end }}
  <b>Labels:</b>  {{ range .Labels.SortedPairs }}
    {{ .Name }}: {{ .Value }}{{ end }}

  {{ if gt (len .Annotations) 0 }}
  <b>Annotations:</b> {{ range .Annotations.SortedPairs }}
    {{ .Name }}: {{ .Value }}{{ end }}
  {{ end }}
{{ end }}