模板参考 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

模板参考

本文档主题专为支持 Grafana 9.x 版本的 Grafana 工作区而设计。

对于支持 Grafana 10.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 10

对于支持 Grafana 8.x 版本的 Grafana 工作区,请参阅使用 Grafana 版本 8

本节提供了创建模板的参考信息。

模板数据

以下数据将传递给消息模板。

名称 类型 备注

Receiver

字符串

要向其发送通知的联系点的名称。

Status

字符串

如果至少有一个警报已触发,则为“触发”,否则为“已解决”。

Alerts

警报

此通知中包含的警报对象列表(见下文)。

GroupLabels

KeyValue

这些警报的分组标签。

CommonLabels

KeyValue

此通知中包含的所有警报的通用标签。

CommonAnnotations

KeyValue

此通知中包含的所有警报的通用注释。

ExternalURL

字符串

指向发送通知的 Grafana 的返回链接。如果使用外部 Alertmanager,则是指向此 Alertmanager 的返回链接。

Alerts 类型公开了两个函数,用于筛选返回的警报。

  • Alerts.Firing:返回已触发警报的列表。

  • Alerts.Resolved:返回已解决警报的列表。

警报(类型)

警报类型包含以下数据。

名称 类型 备注

状态

字符串

firingresolved

标签

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 对象包含以下属性。

名称 类型 描述 示例

接收方

string

发送通知的联系点名称。

{{ .Receiver }}

状态

string

状态为 firing if at least one alert is firing, otherwise resolved.

{{ .Status }}

警报

[]Alert

此通知中所有触发警报和已解决警报的列表。

There are {{ len .Alerts }} alerts

触发警报

[]Alert

此通知中所有触发警报的列表。

There are {{ len .Alerts.Firing }} firing alerts

已解决警报

[]Alert

此通知中所有已解决警报的列表。

There are {{ len .Alerts.Resolved }} resolved alerts

GroupLabels

KeyValue

此通知中对这些警报进行分组的标签。

{{ .GroupLabels }}

CommonLabels

KeyValue

此通知中所有警报的通用标签。

{{ .CommonLabels }}

CommonAnnotations

KeyValue

此通知中所有警报的通用注释。

{{ .CommonAnnotations }}

ExternalURL

string

指向发送此通知的 Grafana 工作区或 Alertmanager 的链接。

{{ .ExternalURL }}

KeyValue type

KeyValue 类型是一组表示标签和注释的键/值字符串对。

除了直接访问存储为 KeyValue 的数据外,还有方法可以对这些数据进行排序、删除和转换。

名称 参数 返回值 备注 示例

SortedPairs

键值字符串对的排序列表

{{ .Annotations.SortedPairs }}

删除

[]string

KeyValue

返回不包含给定键的键/值映射副本。

{{ .Annotations.Remove "summary" }}

名称

[]string

标签名称列表

{{ .Names }}

[]string

标签值列表

{{ .Values }}

时间

时间来自 Go time 包。您可以用多种不同的格式打印时间。例如,要以 Monday, 1st January 2022 at 10:00AM 格式打印警报触发的时间,请编写以下模板:

{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}

您可以在此处找到 Go 的时间格式参考。

模板函数

使用模板函数,您可以处理标签和注释,以生成动态通知。可使用以下函数。

名称 参数类型 返回类型 描述

humanize

数字或字符串

字符串

使用公制前缀将数字转换为更易读的格式。

humanize1024

数字或字符串

字符串

与 humanize 类似,但使用 1024 作为基数,而不是 1000。

humanizeDuration

数字或字符串

字符串

将以秒为单位的持续时间转换为更易读的格式。

humanizePercentage

数字或字符串

字符串

将比率值转换为百分比。

humanizeTimestamp

数字或字符串

字符串

将以秒为单位的 Unix 时间戳转换为更易读的格式。

title

字符串

字符串

strings.Title,将每个单词的第一个字符大写。

toUpper

字符串

字符串

字符串。 ToUpper,将所有字符转换为大写。

toLower

字符串

字符串

字符串。 ToLower,将所有字符转换为小写。

match

模式、文本

布尔值

regexp。 MatchString 测试未锚定的 regexp 匹配项。

reReplaceAll

模式、置换、文本

字符串

Regexp。 ReplaceAllString 正则表达式替换,未锚定。

graphLink

字符串:包含 exprdatasource 字段的 JSON 对象

字符串

返回给定表达式和数据来源在 Explore 中图形视图的路径。

tableLink

字符串:包含 exprdatasource 字段的 JSON 对象

字符串

返回给定表达式和数据来源在 Explore 中表格视图的路径。

args

[]interface{}

map[string]interface{}

将对象列表转换为带键的映射,例如 arg0、arg1。使用此函数可将多个参数传递给模板。

externalURL

nothing

字符串

返回代表外部 URL 的字符串。

pathPrefix

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