创建通知模板 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建通知模板

本文档主题专为支持 Grafana 版本 10.x 的 Grafana 工作空间而设计。

有关支持 Grafana 9.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 9 中工作

有关支持 Grafana 8.x 版本的 Grafana 工作空间,请参阅。在 Grafana 版本 8 中工作

创建可重复使用的通知模板以发送给您的联系人。

您可以向通知模板中添加一个或多个模板。

您的通知模板名称必须是唯一的。在同一个通知模板或不同的通知模板中,不能有两个同名的模板。避免定义与默认模板同名的模板,例如:__subject__text_values_list__text_alert_listdefault.titledefault.message

在 “联系方式” 选项卡中,您可以看到通知模板列表。

创建通知模板

创建通知模板
  1. 选择 “警报”、“联系方式”。

  2. 选择 “通知模板” 选项卡,然后选择 + 添加通知模板

  3. 为通知模板选择一个名称,例如email.subject

  4. 在内容字段中写下模板的内容。

    例如:

    {{ if .Alerts.Firing -}} {{ len .Alerts.Firing }} firing alerts {{ end }} {{ if .Alerts.Resolved -}} {{ len .Alerts.Resolved }} resolved alerts {{ end }}
  5. 保存您的更改。

    {{ define "email.subject" }}(其中email.subject是您的模板名称),并{{ end }}自动添加到内容的开头和结尾。

创建包含多个模板的通知模板
  1. 选择 “警报”、“联系方式”。

  2. 选择 “通知模板” 选项卡,然后选择 + 添加通知模板

  3. 输入整个通知模板的名称。例如,email

  4. 在 “内容” 字段中写下每个模板,包括{{ define "name-of-template" }}每个模板的开头和结尾{{ end }}处和。您可以为通知模板中的每个模板使用描述性名称,例如,email.subjectemail.message。在这种情况下,请勿重复使用您在上面输入的通知模板的名称。

    后面的章节将显示您可能创建的模板的详细示例。

  5. 单击保存。

预览通知模板

在联系人中使用通知模板之前,请先预览通知模板的外观,这有助于您了解正在创建的模板的结果,并使您有机会在保存模板之前修复任何错误。

注意

通知预览仅适用于 Grafana Alertmanager。

预览您的通知模板
  1. 选择 “警报”、“联系方式”。

  2. 选择 “通知模板” 选项卡,然后选择 “+ 添加通知模板”,或者编辑现有模板。

  3. 添加或更新您的模板内容。

    提供了默认数据,您可以向其添加或编辑警报数据以及警报实例。您可以直接在 Payload 数据窗口中添加警报数据,也可以单击 “选择警报实例” 或 “添加自定义警报”。

  4. [可选] 要从现有警报实例中添加警报数据,请执行以下操作:

    1. 选择选择警报实例

    2. 将鼠标悬停在警报实例上方可查看有关每个警报实例的更多信息/

    3. 选择确认将警报实例添加到负载中。

  5. [可选] 要使用警报数据编辑器添加警报数据,请选择添加自定义数据

    1. 添加注释、自定义标签或设置仪表板或面板。

    2. 切换 “触发” 或 “已解决”,具体取决于您要在通知中添加触发警报还是已解决警报。

    3. 选择添加警报数据

    4. 选择 “刷新预览” 以查看模板内容的外观以及相应的有效载荷数据。

    如果您的模板中存在任何错误,它们会显示在预览中,您可以在保存之前对其进行更正。

  6. 保存您的更改。

为邮件主题创建模板

为电子邮件的主题创建一个模板,其中包含触发和已解决的警报数量,如以下示例所示:

1 firing alerts, 0 resolved alerts
为电子邮件主题创建模板
  1. 创建一个名为的模板email.subject,其中包含以下内容:

    {{ define "email.subject" }} {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts {{ end }}
  2. 在创建联络点集成时使用该模板,方法是将其放入带有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
为电子邮件消息创建模板
  1. 创建一个名为的通知模板email,内容中包含两个模板:email.message_alertemail.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 }}
  2. 在创建联络点集成时使用该模板,方法是将其输入到带有template关键字的 “文本正文” 字段中。

    {{ template "email.message" . }}

为 Slack 消息的标题创建模板

为 Slack 消息的标题创建一个模板,其中包含触发和已解决的警报数量,如以下示例所示:

1 firing alerts, 0 resolved alerts
为 Slack 消息的标题创建模板
  1. 创建一个名为的模板slack.title,其中包含以下内容:

    {{ define "slack.title" }} {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts {{ end }}
  2. 在联络点集成中的标题字段中执行模板。

    {{ template "slack.title" . }}

为 Slack 消息的内容创建模板

为 Slack 消息的内容创建模板,其中包含所有触发和已解决警报的描述,包括其标签、注释和控制面板URL。

注意

此模板仅适用于 Grafana 托管的警报。要将模板用于数据源管理的警报,请删除对仪表板URL和静默的引用URL。有关配置 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 消息的内容创建模板
  1. 创建一个名为slack的模板,内容中包含两个模板:slack.print_alertslack.message

    slack.print_alert模板用于打印标签、注释和仪表板,URL而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 }}
  2. 在您的联络点集成中,从文本正文字段中执行模板:

    {{ template "slack.message" . }}

使用共享模板对电子邮件和 Slack 进行模板化

您可以共享相同的模板,而不必为每个联系人创建单独的通知模板,例如电子邮件和 Slack。

例如,如果您想发送带有此主题的电子邮件和带有此标题的 Slack 消息1 firing alerts, 0 resolved alerts,则可以创建共享模板。

创建共享模板
  1. 创建一个名为的模板common.subject_title,其中包含以下内容:

    {{ define "common.subject_title" }} {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts {{ end }}
  2. 对于电子邮件,请在电子邮件联系点集成中的主题字段中运行模板:

    {{ template "common.subject_title" . }}
  3. 对于 Slack,请从 Slack 联络点集成的标题字段中运行模板:

    {{ template "common.subject_title" . }}