创建通知模板 - Amazon Managed Grafana

创建通知模板

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

对于支持 Grafana 10.x 版本的 Grafana 工作区,请参阅 使用 Grafana 版本 10

对于支持 Grafana 8.x 版本的 Grafana 工作区,请参阅 使用 Grafana 版本 8

创建可重用的通知模板发送给联系点。

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

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

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

创建通知模板

创建通知模板
  1. 单击添加模板

  2. 选择通知模板的名称,例如 email.subject

  3. 在内容字段中写入模板的内容。

    例如:

    {{ if .Alerts.Firing -}} {{ len .Alerts.Firing }} firing alerts {{ end }} {{ if .Alerts.Resolved -}} {{ len .Alerts.Resolved }} resolved alerts {{ end }}
  4. 单击保存。

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

创建包含多个模板的通知模板:
  1. 单击添加模板

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

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

    下面的部分展示了您可能创建的模板的详细示例。

  4. 单击保存。

为电子邮件主题创建模板

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

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 关键字的标题字段中。

    {{ template "slack.title" . }}

为 Slack 消息内容创建模板

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

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 模板用于打印标签、注释和 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 }}
  2. 创建联系点集成时,请使用模板将其放入带有 template 关键字的正文字段中。

    {{ template "slack.message" . }}

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

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

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

创建共享模板
  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" . }}

使用通知模板

使用联系点中的模板来自定义通知。

在创建联系点时使用模板
  1. 警报菜单中,选择联系点,以查看现有联系点列表。

  2. 选择添加联系点。或者,您可以选择要编辑的联系点旁边的编辑图标(笔)来编辑现有联系点。

  3. 在一个或多个字段(如消息主题)中输入要使用的模板。要输入模板,请使用表单 {{ template "template_name" . }},将 template_name 替换为您要使用的模板名称。

  4. 单击保存联系点