default.tmpl
{{ define "__subject" }}[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .GroupLabels.SortedPairs.Values | join " " }} {{ if gt (len .CommonLabels) (len .GroupLabels) }}({{ with .CommonLabels.Remove .GroupLabels.Names }}{{ .Values | join " " }}{{ end }}){{ end }}{{ end }}
{{ define "__alertmanagerURL" }}{{ .ExternalURL }}/#/alerts?receiver={{ .Receiver }}{{ end }}
{{ define "__text_alert_list" }}{{ range . }}
**Labels**
{{ range .Labels.SortedPairs }}> - {{ .Name }}: {{ .Value | markdown | html }}
{{ end }}
**Annotations**
{{ range .Annotations.SortedPairs }}> - {{ .Name }}: {{ .Value | markdown | html }}
{{ end }}
**Source:** [{{ .GeneratorURL }}]({{ .GeneratorURL }})
{{ end }}{{ end }}
{{ define "ding.link.title" }}{{ template "__subject" . }}{{ end }}
{{ define "ding.link.content" }}#### \[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}\] **[{{ index .GroupLabels "alertname" }}]({{ template "__alertmanagerURL" . }})**
{{ template "__text_alert_list" .Alerts.Firing }}
{{ end }}
email.default.html
{{ template "__subject" . }}
|
{{ .Alerts | len }} alert{{ if gt (len .Alerts) 1 }}s{{ end }} for {{ range .GroupLabels.SortedPairs }}
{{ .Name }}={{ .Value }}
{{ end }}
|
View in {{ template "__alertmanager" . }}
|
{{ 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 }}
Source
|
{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}
{{ if gt (len .Alerts.Firing) 0 }}
|
{{ end }}
[{{ .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 }}
Source
|
{{ end }}
|
|
|
基于Freemarket的钉钉消息JSON模版
{"msgtype": "markdown",
"markdown": {"title":"[测试]预警啦!",
"text":"[测试环境:${thestatus}:${alerts?size}](${externalURL}/#/alerts?receiver=${receiver})
<#list alerts as alert>
#### **NO.${alert_index + 1}**
> - 节点: ${alert.labels["instance"]}
<#if alert.labels["application"]??>
> - 应用: ${alert.labels["application"]}
#if>
<#if alert.labels["uri"]??>
> - URI : ${alert.labels["uri"]}
#if>
<#if alert.labels["method"]??>
> - 方法: ${alert.labels["method"]}
#if>
<#if alert.labels["status"]??>
> - 响应: ${alert.labels["status"]}
#if>
<#if alert.labels["exception"]??>
> - 异常: ${alert.labels["exception"]}
#if>
> - 信息: ${alert.annotations.summary}
<#if alert.annotations.description??>
> - 备注: ${alert.annotations.description}
#if>
<#if alert.labels["exception"]??>
> - [电脑钉钉看图像](${alert.generatorURL})
\n
#list>"},
"at": {"atMobiles": [],"isAtAll": false}}