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 的常用语法和使用方式。​
​
{​
"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"​
}​
​
​
{​
"Type": "Event",​
"SiteName": "CloudMonitor",​
"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.byteplus.com/observe/cloud-monitor/event/rules/detail?id=1790****"​
}​
], ​
"HistoryURL": "https://console.byteplus.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.07.01 17:46:30
这个页面对您有帮助吗?
有用
有用
无用
无用