首页/云/可观测性速查/通知模板:define、range 与常用字段
告警与响应50 条

通知模板:define、range 与常用字段

通知文案用 Go 模板渲染:模板文件 define 命名块,receiver 的 title/text 引用;遍历 .Alerts 输出明细,.CommonLabels 提供公共维度。与规则里 annotations 的模板是两层不同机制。

可观测性速查云更新于 2026-10-13

通知模板是什么

Alertmanager 的通知文案由 Go 模板渲染:模板文件里用 define 定义命名块,receiver 的 title/text 引用这些块;渲染时遍历 .Alerts 输出明细,用 .CommonLabels 提供公共维度。它与告警规则里 annotations 的模板是两层不同机制——后者生成描述文本,前者决定通知如何排版。

基本信息

模板语言Go template
引用方式模板文件 define 块 + receiver 的 title/text
加载位置alertmanager.yml 的 templates 字段
常用对象.Status / .Alerts / .GroupLabels / .CommonLabels
常用函数join、toUpper、reReplaceAll、humanizeTimestamp
生效方式重载或重启 Alertmanager

典型使用场景

  • 在通知里列出受影响实例清单,值班无需再点看板
  • 按 severity 渲染不同前缀,一眼区分严重级别
  • 把恢复通知与触发通知用 .Status 区分文案
  • 附带跳转链接(ExternalURL 与看板地址),缩短定位路径
  • 对多告警聚合成组后输出数量与摘要,避免消息过长
  • 统一各通道(IM、邮件、电话)文案风格,降低误读

模板文件与引用

模板文件与引用
# alertmanager.yml
templates:
  - /etc/alertmanager/templates/*.tmpl
receivers:
  - name: im
    webhook_configs:
      - url: http://127.0.0.1:8060/relay
        send_resolved: true

# templates/msg.tmpl
{{ define "im.title" }}[{{ .Status | toUpper }}] {{ .CommonLabels.alertname }}{{ end }}
{{ define "im.text" }}{{ range .Alerts -}}
- {{ .Labels.instance }} 当前值 {{ .Annotations.summary }}
{{ end }}共 {{ .Alerts | len }} 条{{ end }}

常用对象与函数

名称类型用途
.Status对象属性触发或恢复
.Alerts数组遍历输出每条告警
.CommonLabels映射聚合后的公共标签
.GroupLabels映射分组标签
join / toUpper函数拼接与大小写
humanizeTimestamp函数时间可读化
改完模板需重载或重启 Alertmanager 才生效;块名被引用成不存在的名字时,通知会渲染为空而不会报错。
通知模板只负责排版:阈值、标签与状态都来自告警规则,文案不对先回去查规则生成的标签,而不是改模板。
模板文件在容器里会随镜像重建被覆盖,必须挂载到持久路径,否则重新部署即丢失。
模板渲染出错时会向通道发送一条简短的错误提示,收到这类提示说明模板语法或字段引用有问题。
模板里的换行与空格会原样输出:多行文本用 {{- 与 -}} 裁剪空白,否则通知里会夹杂大量空行。

易错点

  • 模板在容器镜像内被覆盖重建,须挂载到持久路径否则重部署即丢失
  • 删除通知里的实例列表后信息量骤减,值班要再点看板才能定位
  • 引用不存在的块名或字段时通知会渲染为空,且不会在日志里明显报错
  • 把大段逻辑写进模板会让维护困难,聚合与筛选应尽量在路由与规则层完成
  • 改模板后忘记重载,现象是「改了没变化」,排查时先确认进程是否已重新加载
  • 模板里未裁剪空白会产生大量空行,IM 通道的消息可读性明显下降

数据来源与参考

  • Alertmanager 文档 · Notification template reference
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌