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

托管 Prometheus

复制全文
下载 pdf
通知消息模板
扩展函数与变量
复制全文
下载 pdf
扩展函数与变量
通知消息模板中允许使用预置的告警变量,本文为您介绍预置的告警变量的结构和参数的含义。
数据结构
本文通过以下 JSON 示例代码,展示了托管 Prometheus 告警信息所包含的变量、参数和数据结构。方便您理解 Go Template 的常用语法和使用方式。
{
"Region": "cn-beijing",
"AlertingRuleName": "CPU 利用率大于 80%",
"AlertingRuleDescription": "alarm description",
"AlertingRuleDetailURL": "https://console.volcanicengine.com/prometheus/***3503d49e/detail",
"Level": "P0",
"PromQL": "rate(cpu_total[1m])",
"Comparator": ">",
"Threshold": "0.8",
"For": "3m",
"Alerts": [
{
"Id": "cdwaihonj434390ad",
"Labels": {
"cluster": "ccmp26s0bjh01jhk860f0",
"namespace": "default",
"service": "nginx",
"pod": "nginx-85996***"
},
"Value": "0.84",
"StartsAt": "2024-02-02 17:13:32.065 +0800 CST",
"EndsAt": "2024-02-02 17:13:32.065 +0800 CST",
"DetailURL": "https://console.volcanicengine.com/prometheus/***/alert/alerting?detail_id=***"
}
]
}
参数说明
消息模板中,可以使用的预置变量参数和说明,如下表所示。
变量
类型
示例值
说明
Region
String
cn-beijing
告警产生的地域。取值:
  • cn-beijing:华北 2(北京)
  • cn-shanghai:华东 2(上海)
  • cn-guangzhou:华南 1(广州)
说明
更多地域信息,请参见 地域和可用区
AlertingRuleName
String
CPU 利用率大于 80%
告警规则的名称。
AlertingRuleDescription
String
alarm description
告警规则的描述信息。
AlertingRuleDetailURL
String
https://console.volcanicengine.com/prometheus/***3503d49e/detail
告警规则的 URL 链接。使用该链接可以直接跳转到对应的告警规则。
Level
String
P0
告警等级。取值为 P0、P1 和 P2。
PromQL
String
rate(cpu_total[1m])
告警规则中用于触发告警的 PromQL 语句。
Comparator
String
>
告警比较条件,取值:
  • > :大于
  • >= :大于等于
  • < :小于
  • <= :小于等于
  • == :等于
  • != :不等于
Threshold
String
0.8
告警阈值。
For
String
3m
告警持续时间。
Alerts
Object Alerts
-
嵌套结构,展示告警资源详情。
Alerts
变量
类型
示例值
说明
Id
String
cdwaihonj434390ad
告警事件 ID。
Labels
map[string]string
"cluster": "ccmp26s0bjh01jhk860f0",
"namespace": "default",
"service": "nginx",
"pod": "nginx-85996***"""
告警事件中的故障资源详情。
Value
Float64
0.84
告警事件值。
说明
该参数仅适用于 告警通知 模板,不适用于 告警恢复通知 模板。
StartsAt
time.Time
2024-02-02 17:13:32.065 +0800 CST
告警事件开始时间。
EndsAt
time.Time
2024-02-02 17:13:32.065 +0800 CST
告警事件结束时间。
说明
该参数仅适用于 告警恢复通知 模板,不适用于 告警通知 模板。
DetailURL
String
https://console.volcanicengine.com/prometheus/***/alert/alerting?detail_id=***
告警事件在控制台上的链接。使用该链接可以直接跳转到对应的告警事件。
扩展函数
函数
说明
vkeClusterName
基于 VKE 集群的clusterID 获取集群名称。
通过 VKE 集群中的采集组件写入的 VKE 指标都会携带cluster标签,其值为集群 ID。您也可以使用扩展函数在告警通知中获取集群名称,配置方法如下:
  1. 保证在告警时,产生的告警事件包含cluster标签,例如:可以使用sum(up)by(job,cluster)在配置告警时实现cluster维度上的聚合。此时,告警事件的 Label 列表中就会包含cluster标签。
  1. 配置告警消息模版时,使用vkeClusterName函数获取集群名称。示例为如下代码的第 4 行。
{{ range $i, $alert := .Alerts -}}
{{ if lt $i 5 -}}
第{{ add1 $i }}个资源{{ if $alert.Annotations }}:
集群名称: {{ $alert.Labels.cluster | vkeClusterName }}
{{- range $key, $value := $alert.Labels }}
{{ $key }}: {{ $value }}
{{- end }}
当前值:{{ $alert.Value }}
告警事件ID: {{ $alert.Id }}
告警开始时间:{{ date "2006-01-02T15:04:05Z07:00" $alert.StartsAt }}
---
{{ else if eq $i 5 -}}
仅展示前5个故障资源详情,请点击[告警事件详情]({{ $.AlertListConsoleURL }})查看更多
{{- end }}
{{- end }}
arkEndpointName
基于endpointID获取 endpoint 名称。
火山方舟平台写入的指标都会携带ark_endpoint标签,其值为接入点 ID,您也可以使用扩展函数在告警通知中获取接入点的名称,配置方法如下:
  1. 保证在告警时,产生的告警事件含ark_endpoint标签,例如:如可以使用sum by(ark_endpoint,api)(rate(ark_api_proxy_request_total{}[2m]))在配置告警时实现ark_endpoint维度上的聚合,此时,告警事件的 Label 列表中会包含ark_endpoint标签。
  1. 配置告警消息模版时,使用arkEndpointName函数获取接入点名称。示例为如下代码的第 4 行。
{{ range $i, $alert := .Alerts -}}
{{ if lt $i 5 -}}
第{{ add1 $i }}个资源{{ if $alert.Annotations }}:
接入点名称: {{ $alert.Labels.ark_endpoint | arkEndpointName }}
{{- range $key, $value := $alert.Labels }}
{{ $key }}: {{ $value }}
{{- end }}
当前值:{{ $alert.Value }}
告警事件ID: {{ $alert.Id }}
告警开始时间:{{ date "2006-01-02T15:04:05Z07:00" $alert.StartsAt }}
---
{{ else if eq $i 5 -}}
仅展示前5个故障资源详情,请点击[告警事件详情]({{ $.AlertListConsoleURL }})查看更多
{{- end }}
{{- end }}
last30minAlertDetailImageLarkKey
获取最近 30 分钟告警流转图片在飞书服务端的 image key。
该扩展函数仅飞书应用机器人通知模版可用。
{{- $larkImageKey := last30minAlertDetailImageLarkKey }} {{if $larkImageKey }}
最近 30min 告警详情
![飞书图片]({{$larkImageKey}}) {{end}}
注意
请保证飞书应用机器人更新到最新版本。
last30minAlertDetailImageBase64
获取最近 30 分钟告警流转图片的 Base64 值。
该扩展函数仅邮件通知模版可用。
<img src="{{last30minAlertDetailImageBase64}}" alt="图片描述">
配置示例
除系统预置的告警模板外,您可以基于告警变量的数据结构、Go Template 语法和 Markdown 语法,配置自定义消息模板的内容,示例如下。
注意
  • 故障资源详情由.Alerts.Labels变量获取,不同资源的Labels可能不同。本示例中的Labels.*(例如$alert.Labels.instance)仅为举例。实际配置时,您需要配置为资源存在的Labels变量。
  • 如果您的消息模板中涉及多种不同资源,也可以不指定具体的Label变量,直接遍历每个故障资源的详情。配置方式请参见 模板示例说明
**告警信息**:
---
告警地域:{{ .Region }}
告警规则名称:{{ .AlertingRuleName }}
告警规则描述:{{ .AlertingRuleDescription }}
告警规则 URL:{{ .AlertingRuleDetailURL }}
告警等级:{{ .Level }}
告警规则中的 PromQL 语句:{{ .PromQL }}
告警比较条件:{{ .Comparator }}
告警阈值:{{ .Threshold }}
告警持续时间:{{ .For }}
---
{{- $alertCount := len .Alerts }}
{{- $maxAlerts := 10 }}
**故障资源详情 ({{ $alertCount }} 个)**:
{{- range $idx, $alert := .Alerts }}
{{- if lt $idx 10 }}
{{- $labels := "" -}}
<br>
故障资源 ID:{{- $alert.Id }}
故障资源集群:{{- $alert.Labels.cluster }}
故障资源实例:{{- $alert.Labels.instance }}
故障资源 job:{{- $alert.Labels.job }}
故障资源指标当前值:{{- $alert.Value }}
故障开始时间:{{- $alert.StartsAt }}
告警事件 URL:{{- $alert.DetailURL}}
{{- end }}
{{- end }}
---
{{- if gt $alertCount $maxAlerts }}
**资源数量已超过 {{ $maxAlerts }} 个,完整告警请跳转控制台**。
{{- end }}
上述示例的实际生效效果如下图所示。
alt
最近更新时间:2026.09.04 14:32:33
这个页面对您有帮助吗?
有用
有用
无用
无用