You need to enable JavaScript to run this app.
文档中心
托管 Prometheus

托管 Prometheus

复制全文
下载 pdf
通知消息模板
创建通知消息模板
复制全文
下载 pdf
创建通知消息模板
托管 Prometheus 支持自定义消息通知模板,您可以在通知消息模版中定义告警通知的结构和字段信息。本文介绍如何创建消息通知模板。​
说明​
新版告警中心已经发布上线,针对通知策略、通知模板、聚合策略、屏蔽策略等功能进行全面升级优化,推荐使用全新「通知模版」配置通知模板。​
背景信息​
当告警规则匹配的事件被触发后,托管 Prometheus 会通过邮件、飞书、钉钉、电话、Webhook 等方式发送告警通知。系统已为各种通知方式预置了消息模板,但如果预置的通知消息模板不能满足需求,您可以自定义通知消息模板。​
通知消息模板使用 Markdown 语法 和 Go Template 语法 来撰写和渲染消息通知。配置自定义消息模板前,您需要首先了解 Go Template 中的常用语法。​
说明​
本文中提及的托管 Prometheus 告警事件变量参数和返回示例,请参见 变量结构和参数。​
使用限制​
一个主账号及其子账号最多可创建 100 个通知消息模板。​
Go Template 常用语法​
.字符​
.字符用于在当前作用域下,渲染指定的对象。​
示例 1:取顶级作用域下的所有内容,即告警信息中的全部内容。​
​
{{ . }}​
​
预期返回结果:输出告警信息的全部内容。​
示例 2:获取告警信息中的Region字段。​
​
{{ .Region }}​
​
预期返回结果如下:​
​
cn-beijing​
​
变量​
变量用于保存传入的数据,数据传入变量后,整个模板都能通过变量访问该数据。例如,在{ {$alert := .Alerts}}中使用$alert作为变量,保存告警信息中的全部内容,然后可以使用{{$alert}}访问变量。​
示例:将告警规则名称保存在$alertrulename,然后输出$alertrulename。​
​
{{ $alertrulename := .AlertingRuleName }} {{$alertrulename}}​
​
预期返回结果:​
​
CPU 利用率大于 80%​
​
判断语句​
判断语句if/else使用if检查数据,如果不满足条件,则执行else的内容。当if语句的判断条件为 空值、0、nil、空字符串 或 长度为 0 的字符串 时,都返回false。​
示例:如果告警信息中的.Level值为P0,则输出P0 告警。​
​
{{if eq "P0" .Level }} P0 告警 {{ end }}​
​
预期返回结果:​
​
P0 告警​
​
比较函数​
比较函数用于比较 2 个数据的大小,常与判断语句if/else搭配使用,用于对语句执行情况进行判断。常用的比较函数如下表所示。​
​
函数名​
说明​
eq​
等于​
ne​
不等于​
lt​
小于​
le​
小于等于​
gt​
大于​
ge​
大于等于​
​
示例:如果.Level值等于P0,则输出P0 告警。​
​
{{if eq "P0" .Level }} P0 告警 {{ end }}​
​
预期返回结果:​
​
P0 告警​
​
逻辑函数​
逻辑函数主要包括and、or和not,用于在多个条件中取 非、与 和 或 逻辑。​
示例:如果Region的值为cn-beijing,并且Level的值为P0,则输出北京 P0 告警。​
​
{{if eq "cn-beijing" .Region and eq "P0" .Level }} 北京 PO 告警 {{ end }}​
​
返回结果:​
​
北京 PO 告警​
​
常用内置函数​
Go Template 中的常用内置函数,如下表所示。​
​
函数名称​
说明​
示例​
len​
获取数组长度​
获取 Alerts 数组长度。​
​
{{ len .Alerts }}​
​
预期结果如下:​
​
9​
​
​
使用限制​
  • 不支持配置消息通知中的标题背景颜色,由系统自动设定(告警中为红色,解除为绿色)。​
  • 不支持配置消息通知中的按钮,固定为 查看详情,用于跳转到告警事件列表。​
  • 消息通知的标题和内容长度限制为 16k 字节数(utf-8 编码),超过此限制将导致告警信息被截断。​
操作步骤​
  1. 登录 VMP 服务控制台。​
  1. 在顶部导航栏,选择目标地域。​
  1. 单击左侧导航栏的 告警中心 > 通知消息模板,单击 创建消息模板。​
  • ​Image​​
  1. 选择 告警通知 或 告警恢复通知 页签,分别配置消息模板的参数。​
  • ​​​
  • ​
    配置项​
    说明​
    模版类型​
    选择消息通知模板的类型,支持 邮件、 飞书机器人、飞书应用机器人、钉钉机器人、企业微信机器人 和 短信。​
    模板名称​
    配置消息通知模板的名称。同一地域内不允许重名。​
    模板配置​
    根据 Markdown 语法和 Go Template 语法,配置 告警通知 和 告警恢复通知 的通知模板。包括消息的标题和内容。​
    • 标题:配置告警通知的标题,支持任意 utf-8 字符。​
    • 内容:配置告警通知的内容,支持任意 utf-8 字符。​
    说明​
    ​
  1. (可选)单击 重置,恢复模板内容到默认。​
  1. 单击 确认,完成配置。​
后续操作​
自定义飞书消息通知模板创建完成后,您可以在告警通知策略中引用该模板,详情请参见 创建告警通知策略。​
模板示例说明​
在消息通知模版的控制台中,为您预置了飞书消息通知的模板示例,该模板由 标题 和 内容 组成。本小节以预置 告警通知 模板为例,介绍模板示例的参数和含义。​
标题说明​
模板示例的标题如下:​
​
{{ .Region }} 正在发生告警​
​
模板示例的标题中,使用Region字段获取了发生告警的地域信息,并填充到告警标题中。​
内容说明​
模板示例的内容,由 告警概述 和 故障资源详情 组成。​
  • 告警概述:由以下代码实现,展示了告警规则(包含链接)、告警级别、告警条件和持续时间。​
  • ​
    **🔴告警规则**: [{{ .AlertingRuleName }}]({{ .AlertingRuleDetailURL }})​
    **🚨告警级别**: {{ .Level }}​
    **🚦告警条件**: {{ .PromQL }} {{ .Comparator }} {{ .Threshold }} [ 持续 {{ .For }} ]​
    ​
说明​
在 Markdown 语法中:​
  • 在语句前后分别添加**,表示该语句使用加粗格式。​
  • []()表示链接,其中[]中填写链接的名称,()中填写链接的 URL 地址。​
  • 故障资源详情:由以下代码实现,分别展示了每个故障资源的告警详情。​
  • ​
    {{- $alertCount := len .Alerts }}​
    {{- $maxAlerts := 10 }}​
    **Fault Resource Details ({{ $alertCount }} 个)**:​
    {{- range $idx, $alert := .Alerts }}​
    {{- if lt $idx 10 }}​
    {{- $labels := "" -}}​
    {{- range $k, $v := $alert.Labels }}​
    {{- $labels = print $labels $k "=" "\"**" $v "**\"" " " -}}​
    {{- end }}​
    [{{ $alert.Id }}]({{ $alert.DetailURL }}){{ "{" }} {{ $labels }}{{ "}" }}​
    Current Value: {{ $alert.Value }}​
    Start Time: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}​
    ​
    {{- end }}​
    {{- end }}​
    ​
    ---​
    ​
    {{- if gt $alertCount $maxAlerts }}​
    **The number of resources exceeds {{ $maxAlerts }} ,Jump to console for full alerts**​
    {{- end }}​
    ​
  • ​
    模板内容​
    说明​
    ​
    {{- $alertCount := len .Alerts }}​
    {{- $maxAlerts := 10 }}​
    ​
    分别定义了$alertCount和$maxAlerts变量:​
    • $alertCount:使用len函数,获取告警信息中的故障资源数量。​
    • $maxAlerts:定义了最大展示的资源数量,默认为 10,即最多展示 10 个故障资源的详情。​
    ​
    **Fault Resource Details ({{ $alertCount }} 个)**:​
    {{- range $idx, $alert := .Alerts }}​
    {{- if lt $idx 10 }}​
    {{- $labels := "" -}}​
    {{- range $k, $v := $alert.Labels }}​
    {{- $labels = print $labels $k "=" "\"**" $v "**\"" " " -}}​
    {{- end }}​
    [{{ $alert.Id }}]({{ $alert.DetailURL }}){{ "{" }} {{ $labels }}{{ "}" }}​
    Current Value: {{ $alert.Value }}​
    Start Time: {{ $alert.StartsAt.Format "2006-01-02 15:04:05" }}​
    {{- end }}​
    {{- end }}​
    ​
    当故障资源数小于$maxAlerts定义的值(默认为 10)时,使用递归的方式展示所有故障资源的详情。​
    说明​
    故障资源详情由.Alerts.Labels字段获取。参数含义和数据结构请参见 变量结构和参数,不同资源的 Labels 可能不同。​
    ​
    {{- if gt $alertCount $maxAlerts }}​
    **The number of resources exceeds {{ $maxAlerts }} ,Jump to console for full alerts**​
    {{- end }}​
    ​
    当故障资源数大于$maxAlerts定义的值(默认为 10)时,不展示具体的资源信息,提示跳转至控制台查看。​
    ​
消息示例​
使用自定义模板时,实际生效效果如下图所示。​
​Image​​
​
最近更新时间:2026.09.04 14:32:33
这个页面对您有帮助吗?
有用
有用
无用
无用