本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
模板参考
本文档主题专为支持 Grafana 9.x 版本的 Grafana 工作区而设计。
对于支持 Grafana 10.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 10。
对于支持 Grafana 8.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 8。
本节提供了创建模板的参考信息。
模板数据
以下数据将传递给消息模板。
名称 | 类型 | 备注 |
---|---|---|
|
字符串 |
要向其发送通知的联系点的名称。 |
|
字符串 |
如果至少有一个警报已触发,则为“触发”,否则为“已解决”。 |
|
警报 |
此通知中包含的警报对象列表(见下文)。 |
|
KeyValue |
这些警报的分组标签。 |
|
KeyValue |
此通知中包含的所有警报的通用标签。 |
|
KeyValue |
此通知中包含的所有警报的通用注释。 |
|
字符串 |
指向发送通知的 Grafana 的返回链接。如果使用外部 Alertmanager,则是指向此 Alertmanager 的返回链接。 |
Alerts
类型公开了两个函数,用于筛选返回的警报。
-
Alerts.Firing
:返回已触发警报的列表。 -
Alerts.Resolved
:返回已解决警报的列表。
警报(类型)
警报类型包含以下数据。
名称 | 类型 | 备注 |
---|---|---|
状态 |
字符串 |
|
标签 |
KeyValue |
附加到警报的一组标签。 |
Annotations |
KeyValue |
附加到警报的一组注释。 |
值 | KeyValue | 所有表达式的值,包括经典条件 |
StartsAt |
time.Time |
警报开始触发的时间。 |
EndsAt |
time.Time |
仅在知道警报结束时间时设置。否则,设置为从收到最后一次警报的时间起算的可配置的超时周期。 |
GeneratorURL |
字符串 |
指向 Grafana 或外部 Alertmanager 的返回链接。 |
SilenceURL |
字符串 |
指向静默警报的链接(其中预填了此警报的标签)。仅适用于 Grafana 管理的警报。 |
DashboardURL |
字符串 |
指向 Grafana 控制面板的链接(适用于警报规则属于 Grafana 控制面板的情况)。仅适用于 Grafana 管理的警报。 |
PanelURL |
字符串 |
指向 Grafana 控制面板中面板的链接(适用于警报规则属于 Grafana 控制面板中面板的情况)。仅适用于 Grafana 管理的警报。 |
指纹 |
字符串 |
可用于识别警报的指纹。 |
ValueString |
字符串 |
该字符串包含警报中每个简化表达式的标签和值。 |
ExtendedData
该 ExtendedData 对象包含以下属性。
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
接收方 |
|
发送通知的联系点名称。 |
|
状态 |
|
状态为 |
|
警报 |
|
此通知中所有触发警报和已解决警报的列表。 |
|
触发警报 |
|
此通知中所有触发警报的列表。 |
|
已解决警报 |
|
此通知中所有已解决警报的列表。 |
|
GroupLabels |
|
此通知中对这些警报进行分组的标签。 |
|
CommonLabels |
|
此通知中所有警报的通用标签。 |
|
CommonAnnotations |
|
此通知中所有警报的通用注释。 |
|
ExternalURL |
|
指向发送此通知的 Grafana 工作区或 Alertmanager 的链接。 |
|
KeyValue type
KeyValue
类型是一组表示标签和注释的键/值字符串对。
除了直接访问存储为 KeyValue
的数据外,还有方法可以对这些数据进行排序、删除和转换。
名称 | 参数 | 返回值 | 备注 | 示例 |
---|---|---|---|---|
SortedPairs |
键值字符串对的排序列表 |
|
||
删除 |
[]string |
KeyValue |
返回不包含给定键的键/值映射副本。 |
|
名称 |
[]string |
标签名称列表 |
|
|
值 |
[]string |
标签值列表 |
|
时间
时间来自 Go time
Monday, 1st January 2022 at 10:00AM
格式打印警报触发的时间,请编写以下模板:
{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}
您可以在此处
模板函数
使用模板函数,您可以处理标签和注释,以生成动态通知。可使用以下函数。
名称 | 参数类型 | 返回类型 | 描述 |
---|---|---|---|
|
数字或字符串 |
字符串 |
使用公制前缀将数字转换为更易读的格式。 |
|
数字或字符串 |
字符串 |
与 humanize 类似,但使用 1024 作为基数,而不是 1000。 |
|
数字或字符串 |
字符串 |
将以秒为单位的持续时间转换为更易读的格式。 |
|
数字或字符串 |
字符串 |
将比率值转换为百分比。 |
|
数字或字符串 |
字符串 |
将以秒为单位的 Unix 时间戳转换为更易读的格式。 |
|
字符串 |
字符串 |
strings.Title,将每个单词的第一个字符大写。 |
|
字符串 |
字符串 |
字符串。 ToUpper,将所有字符转换为大写。 |
|
字符串 |
字符串 |
字符串。 ToLower,将所有字符转换为小写。 |
|
模式、文本 |
布尔值 |
regexp。 MatchString 测试未锚定的 regexp 匹配项。 |
|
模式、置换、文本 |
字符串 |
Regexp。 ReplaceAllString 正则表达式替换,未锚定。 |
|
字符串:包含 |
字符串 |
返回给定表达式和数据来源在 Explore 中图形视图的路径。 |
|
字符串:包含 |
字符串 |
返回给定表达式和数据来源在 Explore 中表格视图的路径。 |
|
[]interface{} |
map[string]interface{} |
将对象列表转换为带键的映射,例如 arg0、arg1。使用此函数可将多个参数传递给模板。 |
|
nothing |
字符串 |
返回代表外部 URL 的字符串。 |
|
nothing |
字符串 |
返回外部 URL 的路径。 |
下表列出了每个函数的使用示例。
函数 | TemplateString | 输入 | 预期 |
---|---|---|---|
humanize |
{ humanize $value } |
1234567.0 |
1.235M |
humanize1024 |
{ humanize1024 $value } |
1048576.0 |
1Mi |
humanizeDuration |
{ humanizeDuration $value } |
899.99 |
14m 59s |
humanizePercentage |
{ humanizePercentage $value } |
0.1234567 |
12.35% |
humanizeTimestamp |
{ humanizeTimestamp $value } |
1435065584.128 |
2015-06-23 13:19:44.128 +0000 UTC |
删除实例快照 |
{ $value | title } |
aa bB CC |
Aa Bb Cc |
toUpper |
{ $value | toUpper } |
aa bB CC |
AA BB CC |
toLower |
{ $value | toLower } |
aa bB CC |
aa bb cc |
match |
{ match "a+" $labels.instance } |
aa |
true |
reReplaceAll |
{{ reReplaceAll “localhost :( .*)” “我的.domain:$1" $labels.instance}} |
localhost:3000 |
my.domain:3000 |
graphLink |
{{ graphLink "{\"expr\": \"up\", \"datasource\": \"gdev-prometheus\"}" }} |
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true}] |
|
tableLink |
{{ tableLink "{\"expr\":\"up\", \"datasource\":\"gdev-prometheus\"}" }} |
/explore?left=["now-1h","now","gdev-prometheus",{"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false}] |
|
args |
{{define "x"}}{{.arg0}} {{.arg1}}{{end}}{{template "x" (args 1 "2")}} |
1 2 |
|
externalURL |
{ externalURL } |
http://localhost/path/prefix |
|
pathPrefix |
{ pathPrefix } |
/path/prefix |