本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建通知模板
本文档主题专为支持 Grafana 版本 12.x 的 Grafana 工作空间而设计。
对于支持 Grafana 10.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 10。
对于支持 Grafana 9.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 9。
对于支持 Grafana 8.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 8。
创建可重用的通知模板发送给联系点。
您可以向通知模板添加一个或多个模板。
通知模板名称必须唯一。同一通知模板或不同通知模板中不能有两个同名的模板。避免定义与默认模板同名的模板,例如:__subject、__text_values_list、__text_alert_list、default.title 和 default.message。
在“联系点”选项卡中,您可以看到通知模板的列表。
创建通知模板
创建通知模板
-
选择警报、联系点。
-
选择通知模板选项卡,然后选择 + 添加通知模板。
-
选择通知模板的名称,例如
email.subject。 -
在内容字段中写入模板的内容。
例如:
{{ if .Alerts.Firing -}} {{ len .Alerts.Firing }} firing alerts {{ end }} {{ if .Alerts.Resolved -}} {{ len .Alerts.Resolved }} resolved alerts {{ end }} -
保存更改。
{{ define "email.subject" }}(其中email.subject是模板名称),{{ end }}自动添加到内容的开头和结尾。
创建包含多个模板的通知模板
-
选择警报、联系点。
-
选择通知模板选项卡,然后选择 + 添加通知模板。
-
输入整个通知模板的名称。例如
email。 -
在内容字段中写入每个模板,包括每个模板开头和结尾的
{{ define "和name-of-template" }}{{ end }}。您可以为通知模板中的每个模板使用描述性名称,例如,email.subject或email.message。在这种情况下,不要重复使用您在上面输入的通知模板的名称。后面的部分展示了您可能创建的模板的详细示例。
-
点击保存。
预览通知模板
在联系点中使用通知模板之前,先预览通知模板的外观,这有助于您了解创建的模板效果,并允许在保存模板之前修复任何错误。
注意
通知预览仅适用于 Grafana Alertmanager。
预览通知模板
-
选择警报、联系点。
-
选择通知模板选项卡,然后选择 + 添加通知模板,或添加现有模板。
-
添加或更新模板内容。
提供了默认数据,您可以向其中添加或编辑警报数据以及警报实例。您可以直接在有效载荷数据窗口中添加警报数据,或者单击选择警报实例或添加自定义警报。
-
[可选] 要从现有警报实例中添加警报数据,请执行以下操作:
-
选择选择警报实例。
-
将鼠标悬停在警报实例上,可查看有关每个警报实例的更多信息。
-
选择确认将警报实例添加到有效载荷。
-
-
[可选] 要使用警报数据编辑器添加警报数据,请选择添加自定义数据:
-
添加注释、自定义标签或设置控制面板或面板。
-
切换“触发”或“已解决”,具体取决于您要在通知中添加触发警报还是已解决警报。
-
选择添加警报数据。
-
选择刷新预览,查看模板内容的外观以及相应的有效载荷数据。
如果模板中存在任何错误,这些错误会显示在预览中,您可以在保存之前进行更正。
-
-
保存更改。
为消息主题创建模板
为电子邮件主题创建模板,其中包含触发和已解决的警报数量,如以下示例所示:
1 firing alerts, 0 resolved alerts
为电子邮件主题创建模板
-
使用以下内容创建一个名为
email.subject的模板:{{ define "email.subject" }} {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts {{ end }} -
创建联系点集成时,请使用模板将其放入带有
template关键字的主题字段中。{{ template "email.subject" . }}
为电子邮件消息创建模板
为电子邮件消息创建模板,其中包含所有触发和已解决的警报数量,如以下示例所示:
There are 2 firing alerts, and 1 resolved alerts Firing alerts: - alertname=Test 1 grafana_folder=GrafanaCloud has value(s) B=1 - alertname=Test 2 grafana_folder=GrafanaCloud has value(s) B=2 Resolved alerts: - alertname=Test 3 grafana_folder=GrafanaCloud has value(s) B=0
为电子邮件消息创建模板
-
创建一个名为
email的通知模板,内容中包含两个模板:email.message_alert和email.message。email.message_alert模板用于打印每个触发和已解决警报的标签和值,而email.message模板包含电子邮件的结构。{{- define "email.message_alert" -}} {{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s) {{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }} {{- end -}} {{ define "email.message" }} There are {{ len .Alerts.Firing }} firing alerts, and {{ len .Alerts.Resolved }} resolved alerts {{ if .Alerts.Firing -}} Firing alerts: {{- range .Alerts.Firing }} - {{ template "email.message_alert" . }} {{- end }} {{- end }} {{ if .Alerts.Resolved -}} Resolved alerts: {{- range .Alerts.Resolved }} - {{ template "email.message_alert" . }} {{- end }} {{- end }} {{ end }} -
创建联系点集成时,请使用模板将其放入带有
template关键字的正文字段中。{{ template "email.message" . }}
为 Slack 消息标题创建模板
为 Slack 消息标题创建模板,其中包含触发和已解决的警报数量,如以下示例所示:
1 firing alerts, 0 resolved alerts
为 Slack 消息标题创建模板
-
使用以下内容创建一个名为
slack.title的模板:{{ define "slack.title" }} {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts {{ end }} -
从联系点集成中的标题字段执行模板。
{{ template "slack.title" . }}
为 Slack 消息内容创建模板
为 Slack 消息内容创建模板,其中包含所有触发和已解决警报的描述,包括其标签、注释和控制面板 URL。
注意
此模板仅适用于 Grafana 管理的警报。要将模板用于数据来源管理的警报,请删除对 DashboardURL 和 SilenceURL 的引用。有关配置 Prometheus 通知的更多信息,请参阅 Prometheus 通知文档
1 firing alerts: [firing] Test1 Labels: - alertname: Test1 - grafana_folder: GrafanaCloud Annotations: - description: This is a test alert Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1 1 resolved alerts: [firing] Test2 Labels: - alertname: Test2 - grafana_folder: GrafanaCloud Annotations: - description: This is another test alert Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1
为 Slack 消息内容创建模板
-
创建一个名为
slack的模板,内容中包含两个模板:slack.print_alert和slack.message。slack.print_alert模板用于打印标签、注释和 DashboardURL,而slack.message模板包含通知的结构。{{ define "slack.print_alert" -}} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs -}} - {{ .Name }}: {{ .Value }} {{ end -}} {{ if .Annotations -}} Annotations: {{ range .Annotations.SortedPairs -}} - {{ .Name }}: {{ .Value }} {{ end -}} {{ end -}} {{ if .DashboardURL -}} Go to dashboard: {{ .DashboardURL }} {{- end }} {{- end }} {{ define "slack.message" -}} {{ if .Alerts.Firing -}} {{ len .Alerts.Firing }} firing alerts: {{ range .Alerts.Firing }} {{ template "slack.print_alert" . }} {{ end -}} {{ end }} {{ if .Alerts.Resolved -}} {{ len .Alerts.Resolved }} resolved alerts: {{ range .Alerts.Resolved }} {{ template "slack.print_alert" .}} {{ end -}} {{ end }} {{- end }} -
从联系点集成中的文本正文字段执行模板:
{{ template "slack.message" . }}
使用共享模板对电子邮件和 Slack 进行模板化
您可以共享同一个模板,而不是为每个联系点创建单独的通知模板,例如电子邮件和 Slack。
例如,如果要发送包含此主题的电子邮件和包含标题 1 firing alerts, 0 resolved
alerts 的 Slack 消息,则可以创建共享模板。
创建共享模板
-
使用以下内容创建一个名为
common.subject_title的模板:{{ define "common.subject_title" }} {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts {{ end }} -
对于电子邮件,请从电子邮件联系点集成中的主题字段运行模板:
{{ template "common.subject_title" . }} -
对于 Slack,请从 Slack 联系点集成中的标题字段运行模板:
{{ template "common.subject_title" . }}