以下是一个使用pushgateway获取磁盘健康状态的报警消息。
可以看到,grafana默认的模板有很多无用内容。

获取数据
在grafana的报警预览中,只有state和info两个列显示。

info内容看起来是一个键值对类型的数据,其实只是一个字符串,无法从中获取我们想要的键值对。
我们通过go templete语法,提取字符串里的数据。
{{ with $values }}
{{ range $k, $v := . }}
Location: {{$v.Labels.location}}
Variable: {{$v.Labels.variable}}
Alerting value: {{ $v }}
{{ end }}
{{ end }}
将该内容填写到报警配置内的下图所示位置。

设置告警消息模板
设置消息模板

或者也可以填写为(模板内容可以自定义)
{{ define "alert_list" }}{{ range . }}
Annotations:
{{ range .Annotations.SortedPairs }} - {{ .Name }} = {{ .Value }}
{{ end }}{{ end }}{{ end }}
设置告警模板
{{ define "message" }}{{ if gt (len .Alerts.Firing) 0 }}**Firing**
{{ template "alert_list" .Alerts.Firing }}{{ if gt (len .Alerts.Resolved) 0 }}
{{ end }}{{ end }}{{ if gt (len .Alerts.Resolved) 0 }}**Resolved**
{{ template "alert_list" .Alerts.Resolved }}{{ end }}{{ end }}
设置推送内容

{{ template "message" . }}
测试

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6347