Prometheus

55479
下载
Prometheus 是一个开源的监控和告警系统,专注于时间序列数据的采集与存储。由 SoundCloud 开发,配备高级查询语言PromQL,便于数据挖掘与分析,并无缝对接多种可视化平台。

通知模版参考


Prometheus 生成并发送告警到 Alertmanager,然后根据接收器的标签将其发送给不同的接收者。接收器可以是多种集成之一,包括但不限于:Slack、PagerDuty、电子邮件或通过通用 Webhook 接口的自定义集成。

发送给接收器的通知由模板构建而成。Alertmanager 配备了默认模板,但也可以进行自定义。为了避免混淆,必须注意的是 Alertmanager 模板与 Prometheus 中的模板有所不同。Prometheus 的模板也包括告警规则标签/注解中的模板。

Alertmanager 的通知模板基于 Go 的模板系统。请注意,一些字段会被转化为文本,而其他字段则被转化为 HTML,这可能会影响转义。

数据结构

数据

数据是传递给通知模板和 webhook 推送的结构。

名称类型注解
Receiverstring定义通知的目标接收器的名称(如 slack, email 等)。
Statusstring如果至少有一个告警正在触发,则定义为 firing,否则为resolved
AlertsAlert该组中所有告警对象的列表(见下文)。
GroupLabelsKV这些告警被分组时的标签。
CommonLabelsKV所有告警共有的标签。
CommonAnnotationsKV所有告警的共同注解集。用于提供关于告警的附加信息。
ExternalURLstring发出通知的的 Alertmanager 的回链(backlink)。

Alerts类型提供了过滤告警的功能:

  • Alerts.Firing返回当前正在触发的告警对象列表。
  • Alerts.Resolved返回该组中已解决的告警对象列表。

告警

Alert生成一个告警通知模板。

名称类型备注
Statusstring定义告警是否已解决或当前正在触发。
LabelsKV附带一组标签到告警。
AnnotationsKV告警的一组注解。
StartsAttime.Time告警开始触发的时间。如果省略,则由 Alertmanager 分配当前时间。
EndsAttime.Time只在知道告警结束时间时设置。否则设置为从收到最后一次告警的时间加上一个超时时间。
GeneratorURLstring回链,标识此告警的触发实体。
Fingerprintstring可用于识别告警的指纹。

KV

KV 是一组键/值对,用于表示标签和注解。

type KV map[string]string

包含两个注解的注解示例:

{
summary: "alert summary",
description: "alert description",
}

除了直接访问存储为 KV 的数据(标签和注解)之外,还有对 LabelSet 进行排序、删除和查看的方法:

NameArgumentsReturnsNotes
SortedPairs-Pairs(键/值字符串对的列表。)返回键/值对的排序列表
Remove[]stringKV返回不带给定键的键/值映射的副本
Names-[]string返回 LabelSet 中标签名称的名称
Values-[]string返回 LabelSet 中的值的列表。

函数

请注意 Go 模板也提供了默认函数

String

NameArgumentsReturnsNotes
titlestringstrings.Title将每个单词的首字符大写。
toUpperstringstrings.ToUpper将所有字符转换为大写。
toLowerstringstrings.ToLower将所有字符转换为小写。
trimSpacestringRegexp.MatchString使用正则表达式匹配字符串。
matchpattern, stringRegexp.MatchString使用正则表达式匹配字符串。
reReplaceAllpattern, replacement, textRegexp.ReplaceAllString正则表达式替换。
joinsep string, s []stringstrings.Join将 s 的元素连接成一个字符串。连接时在元素之间插入分隔符。
safeHtmltext stringhtml/template.HTML标记字符串为 HTML,不需要自动转义。
stringSlice…string…string返回传递的字符串的切片。

该文档基于 Prometheus 官方文档翻译而成。


observability.cn Authors 2024 | Documentation Distributed under CC-BY-4.0
Copyright © 2017-2024, Alibaba. All rights reserved. Alibaba has registered trademarks and uses trademarks.
浙ICP备2021005855号-32