CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/Prometheus/通知模板参考
文档目录
告警概述AlertmanagerAlertmanager 配置高可用性通知集成告警 API通知模板参考通知模板示例管理 APIHTTPS 和认证

Prometheus

通知模板参考

Prometheus 创建并发送告警到 Alertmanager,然后 Alertmanager 根据标签将通知发送到不同的接收器。接收器可以是多种集成之一,包括:Slack、PagerDuty、电子邮件,或通过通用 webhook 接口的自定义集成。 发送给接收器的通知通过模板构建。Alertmanager 自带默认模板,但也可以自定义。为避免混淆,需要注意的是 Alertmanager...

Prometheus 创建并发送告警到 Alertmanager,然后 Alertmanager 根据标签将通知发送到不同的接收器。接收器可以是多种集成之一,包括:Slack、PagerDuty、电子邮件,或通过通用 webhook 接口的自定义集成。

发送给接收器的通知通过模板构建。Alertmanager 自带默认模板,但也可以自定义。为避免混淆,需要注意的是 Alertmanager 模板与 Prometheus 中的模板不同,不过 Prometheus 模板也包括告警规则标签/注解中的模板。

Alertmanager 的通知模板基于 Go 模板系统。请注意,某些字段作为文本评估,其他字段作为 HTML 评估,这将影响转义处理。

数据结构

Data

Data 是传递给通知模板和 webhook 推送的结构。

名称 类型 说明
Receiver string 定义通知将发送到的接收器名称(slack、email 等)。
Status string 如果至少有一个告警正在触发则定义为 firing,否则为 resolved。
Alerts Alert 此组中所有告警对象的列表(见下文)。
GroupLabels KV 这些告警分组依据的标签。
CommonLabels KV 所有告警共有的标签。
CommonAnnotations KV 所有告警共有的注解集合。用于关于告警的更长附加信息字符串。
ExternalURL string 返回发送通知的 Alertmanager 的链接。

Alerts 类型暴露了用于过滤告警的函数:

  • Alerts.Firing 返回此组中当前正在触发的告警对象列表
  • Alerts.Resolved 返回此组中已解决的告警对象列表

Alert

Alert 持有一个用于通知模板的告警。

名称 类型 说明
Status string 定义告警是已解决还是当前正在触发。
Labels KV 附加到告警的标签集合。
Annotations KV 告警的注解集合。
StartsAt time.Time 告警开始触发的时间。如果省略,Alertmanager 将分配当前时间。
EndsAt time.Time 仅在告警的结束时间已知时设置。否则设置为自上次收到告警以来的可配置超时期限。
GeneratorURL string 标识此告警触发实体的回链。
Fingerprint string 可用于标识告警的指纹。

KV

KV 是一组键/值字符串对,用于表示标签和注解。

type KV map[string]string

包含两个注解的注解示例:

{
  summary: "alert summary",
  description: "alert description",
}

除了直接访问存储为 KV 的数据(标签和注解)外,还有用于排序、删除和查看 LabelSet 的方法:

KV 方法

名称 参数 返回值 说明
SortedPairs - Pairs(键/值字符串对列表。) 返回排序后的键/值对列表。
Remove []string KV 返回不包含给定键的键/值映射副本。
Names - []string 返回 LabelSet 中标签名称的名称。
Values - []string 返回 LabelSet 中值的列表。

函数

注意 Go 模板也提供了默认函数。

字符串

名称 参数 描述
append slice []any, args ...any 返回一个新的切片,将提供的参数追加到提供的切片中。
date string, time.Time 返回指定格式的时间文本表示。格式文档请参阅 pkg.go.dev/time。
dict values ...any 返回从可变参数键值对列表构建的 string 到 any 的映射。参数数量必须为偶数,键必须为字符串。
humanizeDuration number or string 返回表示持续时间的人类可读字符串,以及可能发生的错误。
join sep string, s []string strings.Join,连接 s 的元素创建单个字符串。分隔符字符串 sep 放置在结果字符串的元素之间。(注意:为方便模板中的管道操作,参数顺序已反转。)
list ...any 将传递的参数作为接口切片返回。
match pattern, string Regexp.MatchString。使用正则表达式匹配字符串。
reReplaceAll pattern, replacement, text Regexp.ReplaceAllString 正则替换,非锚定。
safeHtml text string html/template.HTML,标记字符串为不需要自动转义的 HTML。
safeUrl text string html/template.URL,标记字符串为不需要自动转义的 URL。
since time.Time time.Since,返回从提供的时间到当前系统时间经过了多长时间的持续时间。
stringSlice ...string 将传递的字符串作为字符串切片返回。
title string strings.Title,将每个单词的首字符大写。
toJson any json.Marshal,返回值的 JSON 编码。
toLower string strings.ToLower,将所有字符转换为小写。
toUpper string strings.ToUpper,将所有字符转换为大写。
trimSpace string strings.TrimSpace,删除前后空白字符。
tz string, time.Time 返回指定时区的时间。例如 Europe/Paris。
urlUnescape text string url.QueryUnescape,解码 % 编码的 URL

文章大纲