You need to enable JavaScript to run this app.
文档中心
云监控

云监控

复制全文
下载 pdf
通知模板
扩展函数与变量
复制全文
下载 pdf
扩展函数与变量
通知内容模板中允许使用预置的告警变量,本文为您介绍预置的告警变量的结构和参数的含义。​
扩展函数​
云监控通知内容模版中,支持 Go Template 内置函数和扩展函数。详情如下表所示。​
​
函数​
说明​
Go Template 内置函数​
云监控通知内容模版支持使用 Go Template 内置函数,详情请参见 官方文档。​
translate​
​
将变量值转换为自然语言。​
translate(type string, lang string, val string) string​
  • type:变量名​
  • 告警模版:支持 Region、Type、Level、Namespace 变量。​
  • 事件模版:支持 Region、Type、Level、Source、Event 变量。​
  • lang:转换目标语言,当前只支持zh(中文)和 en(英文)。​
  • val:变量值。​
通用整形数字计算函数​
  • 和:add(i ...interface{}) int64​
  • 差:sub(a, b interface{}) int64​
  • 最大值:max(a interface{}, i ...interface{}) int64​
  • 最小值:min(a interface{}, i ...interface{}) int64​
集合操作函数​
切片​
  • slice(list interface{}, indices ...int) interface{}​
map​
  • get(m map[string]interface{}, key string) interface{}​
字符串函数​
  • 截断:trunc(c int, s string) string​
  • 截取:substr(start int, end int, s string) string​
  • 去除空白字符:trim(s string) string​
  • 包含:contains(substr string, str string) bool​
  • 前缀:hasPrefix(substr string, str string) bool​
  • 后缀:hasSuffix(substr string, str string) bool​
  • 转义:quote(str ...interface{}) string​
  • 拼接:join(sep string, v interface{}) string​
  • 替换:replace(old string, new string, src string) string​
  • 转字符串:toString(v interface{}) string​
时间函数​
  • 如果变量是time.Time类型,可以使用时间函数.Format定义时间显示格式。例如 {{ .HappenedAt.Format "2006-01-02 15:04:05(UTCZ07:00)" }}。​
JSON 操作​
  • JSON:toJson(v interface{}) string​
  • PrettyJSON:toPrettyJson(v interface{}) string​
​
告警模版变量​
数据结构​
本文通过以下 JSON 示例代码,展示了云监控告警模版所支持的变量、参数和数据结构。方便您理解 Go Template 的常用语法和使用方式。​
​
{​
"MaxCount": 5,​
"Type": "Metric",​
"SiteName": "云监控",​
"AccountName": "user-demo",​
"AccountId": "21000*****",​
"RuleName": "alarm-demo",​
"RuleId": "19251*****",​
"RuleURL": "https://console.volcengine.com/observe/cloud-monitor/alert/strategy?id=19251*****",​
"RuleType": "static",​
"Namespace": "VCM_ECS",​
"SubNamespace": "Instance",​
"Region": "cn-beijing",​
"HappenedAt": "2025-01-02 00:00:00(UTC+08:00)",​
"RuleCondition": "QPS 平均值环比上周期上涨或下降 0%, 持续 10 个周期(1 周期=1 分钟)",​
"Level": "critical",​
"ProjectName": "default",​
"TagSet": [​
{​
"Key": "test",​
"Value": "test"​
}​
],​
"Resources": [​
{​
"AlertGroupId": "67fd19******",​
"AlertGroupURL": "https://console.volcengine.com/observe/cloud-monitor/alert/history/detail?id=67fd19*****",​
"Id": "i-yd9j*****",​
"Name": "ecs-demo",​
"DetailURL": "https://console.volcengine.com/observe/cloud-monitor/product/*******",​
"Region": "cn-beijing",​
"FirstAlertTime": "2025-07-06 00:00:00(UTC+08:00)",​
"LastAlertTime": "2025-07-07 00:00:00(UTC+08:00)",​
"LastSendLevel": "warning",​
"Metrics": [​
{​
"Name": "CpuTotal",​
"Unit": "%",​
"Threshold": "80",​
"CurrentValue": "90",​
"Description": "CPU 使用率",​
"Warn": "true",​
"IsTimeCompare": "true",​
"InherentUnit": "%",​
"LastValue": "85",​
"LastDescription": "上周期 CPU 使用率",​
"CurrentValue": "91",​
"CurrentDescription": "当前 CPU 使用率"​
}​
],​
"Dimensions": [​
{​
"Name": "ResourceID",​
"Value": "i-yd9j*****",​
"Description": "实例 ID"​
}​
],​
"ProjectName": "default",​
"TagSet": [​
{​
"Key": "test",​
"Value": "test"​
}​
],​
"Metadatas": [​
{​
"Name": "IP.Inside",​
"Value": "192.168.0.1",​
"Description": "私网 IP 地址"​
}​
]​
}​
], ​
"HistoryURL": "https://console.volcengine.com/observe/cloud-monitor/alert/history",​
"CreateSilenceURL": "https://console.volcengine.com/observe/cloud-monitor/notice/silencePolicy/create?ruleId=19251*****"​
}​
​
变量说明​
说明​
  • 对于非嵌套变量,可以使用 Go Template 标准方式,获取变量的值。例如{{ .Region }}。​
  • 对于嵌套变量,需要通过自定义变量的方式获取所有的资源。例如定义$resource变量,然后通过遍历的方式获取所有的资源{{ range $idx, $resource := .Resources }}。对于内部变量,则需使用$resource.字段名的方式获取变量的值,例如{{ $resource.Id }}。​
通知内容模板中,可以使用的预置变量和说明,如下表所示。​
​
变量名​
类型​
说明​
示例值​
用法示例​
MaxCount​
Int​
配置告警模板在当前发送渠道的最大渲染资源数量。​
5​
{{ .MaxCount }}​
Type​
String​
告警类型,取值:​
  • Metric:告警​
  • MetricRecovered:告警恢复​
  • MetricsNoData:无数据告警​
  • NoDataRecovered:无数据告警恢复​
Metric​
  • 直接渲染:{{ .Type }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Type" "zh" .Type }},例如将Metric翻译为告警。​
SiteName​
String​
站点名称。​
云监控​
{{ .SiteName }}​
AccountName​
String​
账号名称。​
user-demo​
{{ .AccountName }}​
AccountId​
String​
账号 ID。​
21000*****​
{{ .AccountId }}​
RuleName​
String​
告警策略名称。​
alarm-demo​
{{ .RuleName }}​
RuleId​
String​
告警策略 ID。​
19251*****​
{{ .RuleId }}​
RuleURL​
String​
告警策略详情链接。​
https://console.volcengine.com/observe/cloud-monitor/alert/strategy?id=19251*****4565*****​
{{ .RuleURL }}​
RuleType​
String​
告警策略类型,取值:​
  • static:静态资源范围。​
  • dynamic:动态资源范围。​
  • account:账号级别指标告警。​
static​
{{ .RuleType }}​
Namespace​
String​
告警策略所属命名空间。​
VCM_ECS​
  • 直接渲染:{{ .Namespace }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Namespace" "zh" .Namespace }}​
SubNamespace​
String​
监控指标所属维度。​
Instance​
{{ .SubNamespace }}​
Region​
String​
告警策略所属地域。​
cn-beijing​
  • 直接渲染:{{ .Region }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Region" "zh" .Region }},例如将cn-beijing翻译为 华北2(北京)。​
HappenedAt​
time.Time​
告警发生时间。​
2025-01-02 00:00:00(UTC+08:00)​
格式化时间:{{ .HappenedAt.Format "2006-01-02 15:04:05(UTCZ07:00)" }}​
RuleCondition​
String​
告警触发条件。​
QPS 平均值环比上周期上涨或下降 0%, 持续 10 个周期(1 周期=1 分钟)​
{{ .RuleCondition }}​
Level​
String​
告警级别,取值:​
  • critical:严重​
  • warning:警告​
  • notice:通知​
critical​
  • 直接渲染:{{ .Level }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Level" "zh" .Level }},例如将critical翻译为严重。​
ProjectName​
String​
告警策略所属项目名称。​
default​
{{ .Project }}​
TagSet​
Array of Tag​
告警策略标签,每个标签包含Key和Value。​
-​
遍历标签:​
​
{{ range $idx, $tag := .Tags }}​
{{ $tag.Key }}: {{ $tag.Value }}​
{{ end }}​
​
Resources​
Array of ResourceMetric​
触发告警的云产品资源列表。​
-​
遍历资源:​
​
{{ range $idx, $resource := .Resources }}​
{{ $resource.Name }} ({{ $resource.Id}})​
{{ end }}​
​
HistoryURL​
String​
告警历史页面链接。​
https://console.volcengine.com/observe/cloud-monitor/alert/history​
{{ .HistoryURL }}​
CreateSilenceURL​
String​
创建告警屏蔽策略的链接。​
https://console.volcengine.com/observe/cloud-monitor/notice/silencePolicy/create?ruleId=19251*****​
{{ .CreateSilenceURL }}​
​
Tag​
​
变量名​
类型​
说明​
示例值​
用法示例​
Key​
String​
标签键。​
test​
{{ $tag.Key }}​
Value​
String​
标签值。​
test​
{{ $tag.Value }}​
​
ResourceMetric​
​
变量名​
类型​
说明​
示例值​
用法示例​
AlertGroupId​
String​
告警历史 ID。​
67fd19******​
{{ $resource.AlertGroupId }}​
AlertGroupURL​
String​
云产品资源告警详情链接。​
https://console.volcengine.com/observe/cloud-monitor/alert/history/detail?id=67fd19*****​
{{ $resource.AlertGroupURL }}​
Id​
String​
云产品资源 ID。​
i-yd9j*****​
{{ $resource.Id }}​
Name​
String​
云产品资源名称。​
ecs-demo​
{{ $resource.Name }}​
DetailURL​
String​
云产品资源监控链接。​
https://console.volcengine.com/observe/cloud-monitor/product/*******​
{{ $resource.DetailURL }}​
Region​
String​
云产品资源所属地域。​
cn-beijing​
  • 直接渲染:{{ $resource.Region }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Region" "zh" $resource.Region }},例如将cn-beijing翻译为华北2(北京)。​
FirstAlertTime​
time.Time​
告警首次发生时间。​
2025-01-01 00:00:00(UTC+08:00)​
格式化时间:{{ $resource.FirstAlertTime.Format "2006-01-02 15:04:05(UTCZ07:00)" }}​
LastAlertTime​
time.Time​
告警最后发生时间。​
2025-01-02 00:00:00(UTC+08:00)​
格式化时间:{{ $resource.LastAlertTime.Format "2006-01-02 15:04:05(UTCZ07:00)" }}​
LastSendLevel​
String​
上一次发送告警级别,取值:​
  • critical:严重​
  • warning:警告​
  • notice:通知​
告警首次发送时,该值为空。​
warning​
  • 直接渲染:{{ .Level }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Level" "zh" $resource.LastSendLevel }},例如将warning翻译为警告。​
Metrics​
Array of MetricValue​
告警策略配置的指标列表。​
当值为 NaN时,表示无数据。​
-​
遍历指标:​
​
{{ range $idx, $metric := $resource.Metrics }}​
{{ $metric.Name }}: {{ $metric.CurrentValue }}{{ $metric.Unit }}​
{{ end }}​
​
Dimensions​
Array of MetricDimension​
云产品资源的维度列表。​
-​
遍历维度:​
​
{{ range $idx, $dimension := $resource.Dimensions }}​
{{ $dimension.Name }}: {{ $dimension.Value }}​
{{ end }}​
​
ProjectName​
String​
云产品资源所属的项目名称。​
default​
{{ $resource.ProjectName }}​
TagSet​
Array of Tag​
云产品资源标签。​
-​
遍历标签:​
​
{{ range $key, $val := $resource.Tags }}​
{{ $key }}: {{ $val }}​
{{ end }}​
​
Metadatas​
Array of Metadata​
云产品资源用于告警的元数据。​
-​
遍历元数据:​
​
{{ range $idx, $meta := $resource.Metadatas }}​
{{ $meta.Name }}: {{ $meta.Value }}​
{{ end }}​
​
​
MetricValue​
​
变量名​
类型​
说明​
示例值​
用法示例​
Name​
String​
指标名称。​
CpuTotal​
{{ $metric.Name }}​
Unit​
String​
阈值单位。​
%​
{{ $metric.Unit }}​
Threshold​
String​
指标阈值。​
80​
{{ $metric.Threshold }}​
CurrentValue​
String​
当前指标值。​
90​
{{ $metric.CurrentValue }}​
Description​
String​
指标描述。​
CPU 使用率​
{{ $metric.Description }}​
Warn​
Bool​
指标是否满足阈值条件。取值:​
  • true:满足阈值。​
  • false:不满足阈值。​
true​
{{ $metric.Warn }}​
IsTimeCompare​
Bool​
是否同比、环比。取值:​
  • true:同比。​
  • false:环比。​
true​
{{ $metric.IsTimeCompare }}​
InherentUnit​
String​
指标单位。​
%​
{{ $metric.IsTimeCompare }}​
LastValue​
String​
上次指标值。​
85​
{{ $metric.LastValue }}​
LastDescription​
String​
上次指标描述,格式为{上周期}/{昨天同一时刻}/{上周同一时刻}{指标名}。​
上周期 CPU 使用率​
{{ $metric.LastDescription }}​
CurrentValue​
String​
当前指标值。​
91​
{{ $metric.CurrentValue }}​
CurrentDescription​
String​
当前指标描述,格式为{当前}{指标名}。​
当前 CPU 使用率​
{{ $metric.CurrentDescription }}​
​
MetricDimension​
​
变量名​
类型​
说明​
示例​
用法示例​
Name​
String​
云产品维度名称。​
ResourceID​
{{ $dimension.Name }}​
Value​
String​
云产品维度值。​
i-yd9j*****ajrd7*****​
{{ $dimension.Value }}​
Description​
String​
云产品维度描述。​
实例 ID​
{{ $dimension.Description }}​
​
Metadata​
说明​
不同云产品用于告警的元信息不同,部分产品可能不存在用于告警的元信息。​
​
变量名​
类型​
说明​
示例​
用法示例​
Name​
String​
元数据名称。​
IP.Inside​
{{ $meta.Name }}​
Value​
String​
元数据值。​
192.168.0.1​
{{ $meta.Value }}​
Description​
String​
维度描述。​
私网 IP 地址​
{{ $meta.Description }}​
​
配置示例​
除系统预置的告警模板外,您可以基于告警变量的数据结构、Go Template 语法和 Markdown 语法,配置自定义消息模板的内容,示例如下。​
​
**告警信息**:​
​
---​
​
告警类型:{{ .Type }}​
账号名称:{{ .AccountName }}​
账号 ID:{{ .AccountId }}​
告警策略名称:{{ .RuleName }}​
告警策略 ID:{{ .RuleId }}​
告警策略详情:{{ .RuleURL }}​
告警策略类型:{{ .RuleType }}​
告警涉及的云产品:{{ .Namespace }}​
告警涉及的云产品维度:{{ .SubNamespace }}​
云产品所在地域:{{ .Region }}​
告警发生时间:{{ .HappenedAt }}​
告警触发条件:{{ .RuleCondition }}​
告警级别:{{ .Level }}​
配置告警屏蔽策略的链接:{{ .CreateSilenceURL }}​
​
---​
​
**产生告警的资源详情**:​
{{- range $idx, $resource := .Resources }}​
云产品资源 ID:{{- $resource.Id }}​
云产品资源名称:{{- $resource.Name }}​
云产品资源所属地域:{{- $resource.Region }}​
云产品资源告警详情链接:{{- $resource.AlertGroupURL }}​
告警首次发生时间:{{- $resource.FirstAlertTime }}​
告警最后发生时间:{{- $resource.LastAlertTime }}​
告警策略配置的指标列表:{{ range $idx, $metric := $resource.Metrics }}​
指标名称:{{ $metric.Name }}​
阈值单位:{{ $metric.Unit }}​
指标阈值:{{ $metric.Threshold }}​
指标当前值:{{ $metric.CurrentValue }}​
{{- end }}​
{{- end }}​
​
上述示例的实际生效效果,如下图所示。​
​​​
事件模版变量​
数据结构​
本文通过以下 JSON 示例代码,展示了云监控事件模版所支持的变量、参数和数据结构。方便您理解 Go Template 的常用语法和使用方式。​
​
{​
"Type": "Event",​
"SiteName": "云监控",​
"AccountName": "user-demo",​
"AccountId": "21000*****",​
"Source": "ecs",​
"Level": "critical",​
"Id": "1803******",​
"Event": "ecs:Instance:RebootInstance.Executing",​
"HappenedAt": "2025-01-01 00:00:00(UTC+08:00)",​
"Region": "cn-beijing",​
"ResourceId": "i-yd9j*****",​
"ResourceName": "ecs-demo",​
"ProjectName": "default",​
"TagSet": [​
{​
"Key": "test",​
"Value": "test"​
}​
],​
"Details": [​
{​
"id": "687f47006e921c57c64b79fb",​
"resourceid": "subnet-3rej6jce9fev45zs***",​
"source": "vpc"​
}​
],​
"Rules": [​
{​
"RuleId": "19251*****",​
"RuleName": "event-demo",​
"Level": "critical",​
"RuleURL": "https://console.volcengine.com/observe/cloud-monitor/event/rules/detail?id=1790****"​
}​
], ​
"HistoryURL": "https://console.volcengine.com/observe/cloud-monitor/alert/history"​
}​
​
变量说明​
说明​
  • 对于非嵌套变量,可以使用 Go Template 标准方式,获取变量的值。例如{{ .Region }}。​
  • 对于嵌套变量,需要通过自定义变量的方式获取所有的资源。例如定义$rule变量,然后通过遍历的方式获取所有的资源{{ range $idx, $rule := .Rules }}。对于内部变量,则需使用$rule.字段名的方式获取变量的值,例如{{ $rule.RuleId }}。​
通知内容模板中,可以使用的预置变量和说明,如下表所示。​
​
变量名​
类型​
说明​
示例值​
用法示例​
Type​
String​
告警类型,取值固定为Event。​
Event​
  • 直接渲染:{{ .Type }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Type" "zh" .Type }},例如将Event翻译为事件。​
SiteName​
String​
站点名称。​
云监控​
{{ .SiteName }}​
AccountName​
String​
账号名称。​
user-demo​
{{ .AccountName }}​
AccountId​
String​
账号 ID。​
21000*****​
{{ .AccountId }}​
Source​
String​
事件来源。​
ecs​
  • 直接渲染:{{ .Source }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Source" "zh" .Source }},例如将ecs翻译为云服务器。​
Level​
String​
事件级别,取值:​
  • critical:严重​
  • warning:警告​
  • notice:通知​
说明​
若匹配多个规则,取最高级别。​
critical​
  • 直接渲染:{{ .Level }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Level" "zh" .Level }},例如将critical翻译为严重。​
Id​
String​
事件 ID。​
1803******​
{{ .Id }}​
Event​
String​
事件类型。​
ecs:Instance:RebootInstance.Executing​
  • 直接渲染:{{ .Event }}​
  • 翻译为自然语言:{{ translate "Event" "zh" .Event }},例如将ecs:Instance:RebootInstance.Executing 翻译为 重启实例:执行中。​
HappenedAt​
time.Time​
事件发生时间。​
2025-01-01 00:00:00(UTC+08:00)​
格式化时间:{{ .HappenedAt.Format "2006-01-02 15:04:05(UTCZ07:00)" }}​
Region​
String​
云产品资源所属地域。​
cn-beijing​
  • 直接渲染:{{ .Region }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Region" "zh" .Region }},例如将cn-beijing翻译为 华北2(北京)。​
ResourceId​
String​
云产品资源 ID。​
i-yd9j*****​
{{ .ResourceId }}​
ResourceName​
String​
云产品资源名称。​
ecs-demo​
{{ .ResourceName }}​
ProjectName​
String​
云产品资源所属项目名称。​
default​
{{ .Project }}​
TagSet​
Array of Tag​
云产品资源标签,每个标签包含Key和Value。​
-​
遍历标签:​
​
{{ range $idx, $tag := .Tags }}​
{{ $tag.Key }}: {{ $tag.Value }}​
{{ end }}​
​
Details​
map[string]interface{}​
事件详情。​
说明​
不同云产品的事件格式不同。​
-​
遍历详情:​
​
{{ range $key, $val := .Details }}​
{{ $key }}: {{ $val }}​
{{ end }}​
​
Rules​
Array of EventRule​
匹配的事件规则列表。​
-​
遍历规则:​
​
{{ range $idx, $rule := .Rules }}​
{{ $rule.RuleName }} ({{ $rule.Level }})​
{{ end }}​
​
HistoryURL​
String​
事件中心链接。​
https://console.volcengine.com/observe/cloud-monitor/alert/history​
{{ .HistoryURL }}​
​
EventRule​
​
变量名​
类型​
说明​
示例值​
用法示例​
RuleId​
String​
事件规则 ID。​
19251****​
{{ $rule.RuleId }}​
RuleName​
String​
事件规则名称。​
event-demo​
{{ $rule.RuleName }}​
Level​
String​
事件规则级别,取值:​
  • critical:严重​
  • warning:警告​
  • notice:通知​
critical​
  • 直接渲染:{{ $rule.Level }}​
  • 使用扩展函数翻译为自然语言:{{ translate "Level" "zh" $rule.Level }},例如将critical翻译为严重。​
RuleURL​
String​
事件规则链接。​
https://console.volcengine.com/observe/cloud-monitor/event/rules/detail?id=1790****​
{{ $rule.RuleURL }}​
​
配置示例​
除系统预置的事件模板外,您可以基于事件变量的数据结构、Go Template 语法和 Markdown 语法,配置自定义内容模板的内容,示例如下。​
​
**事件信息**:​
​
---​
​
告警类型:{{ .Type }}​
账号名称:{{ .AccountName }}​
账号 ID:{{ .AccountId }}​
事件来源:{{ .Source }}​
事件级别:{{ .Level }}​
事件 ID:{{ .Id }}​
事件类型:{{ .Event }}​
事件发生时间:{{ .HappenedAt }}​
云产品所属地域:{{ .Region }}​
云产品资源 ID:{{ .ResourceId }}​
云产品资源名称:{{ .ResourceName }}​
事件中心链接:{{ .HistoryURL }}​
​
---​
​
**产生事件的资源详情**:​
{{- range $key, $val := .Details }}​
{{ $key }}: {{ $val }}​
{{- end }}​
​
上述示例的实际生效效果,如下图所示。​
​​​
​
最近更新时间:2026.03.31 21:28:51
这个页面对您有帮助吗?
有用
有用
无用
无用