Prometheus学习系列(十七)之模板参考

本文介绍了Prometheus模板在警报注释、标签和服务控制台中的应用,详细讲解了数据结构、查询函数、模板类型的区别,并提供了相关链接。通过模板,可以进行时间序列数据查询、条件判断和格式化输出,便于服务监控和报警管理。
摘要由CSDN通过智能技术生成

Prometheus支持在警报的注释和标签以及服务的控制台页面中进行模板化。 模板能够针对本地数据库运行查询,迭代数据,使用条件,格式化数据等.Prometheus模板语言基于Go模板系统。

一、数据结构题

处理时间序列数据的主要数据结构是样本,定义如下:

type sample struct {
        Labels map[string]string
        Value  float64
}

样本的度量标准名称在Labels映射中的特殊__name__标签中进行编码。

[]sample表示样本列表。

Go中的interface{}类似于C中的void指针。

二、函数

除了Go模板提供的默认功能外,Prometheus还提供了更轻松处理模板中查询结果的功能。

如果在管道中使用函数,则管道值将作为最后一个参数传递。

2.1 查询
名字参数返回值解析
queryquery string[]sample查询数据库,不支持返回范围向量。
first[]samplesample索引等于0
labellabel, samplestring相当于index sample.Labels标签
valuesamplefloat64相当于 sample.Value
sortByLabellabel, []samples[]sample按给定标签对样品进行排序。 是稳定排序。

firstlabelvalue旨在使查询结果易于在管道中使用。

2.2 数字
名字参数返回解析
humanizenumberstring使用度量标准前缀将数字转换为更易读的格式。
humanize1024numberstringhumanize一样,但使用1024作为基础而不是1000。
humanizeDurationnumberstring将持续时间(以秒为单位)转换为更易读的格式。
humanizeTimestampnumberstring将Unix时间戳以秒为单位转换为更易读的格式。

Humanizing功能旨在为人类消费产生合理的输出,并且不保证在Prometheus版本之间返回相同的结果。

2.3 字符串
名字参数返回解析
titlestringstringstrings.Title, 大写每个单词的第一个字符。
toUpperstringstringstrings.ToUpper, 将所有字符转换为大写。
toLowerstringstringstrings.ToLower, 将所有字符转换为小写。
matchpattern, textbooleanregexp.MatchString 测试未锚定的正则表达式匹配。
reReplaceAllpattern, replacement, textstringRegexp.ReplaceAllString Regexp替换,未经修复。
graphLinkexprstring返回表达式的表达式浏览器中图表视图的路径。
tableLinkexprstring返回表达式的表达式浏览器中表格(“Console”)视图的路径。
2.4 其他
名字参数返回解析
args[]interface{}map[string]interface{}这会将对象列表转换为具有键arg0arg1等的映射。这旨在允许将多个参数传递给模板。
tmplstring, []interface{}nothing与内置模板一样,但允许非文字作为模板名称。 请注意,结果被认为是安全的,不会自动转义。 仅适用于游戏机。
safeHtmlstringstring将字符串标记为不需要自动转义的HTML。
三、模板类型的区别

每种类型的模板都提供可用于参数化模板的不同信息,并具有一些其他差异。

3.1 报警字段模板

.Value.Labels包含警报值和标签。 为方便起见,它们也作为$value$labels变量公开。

3.2 控制台模板

控制台暴露在/consoles/上,并且来自-web.console.templates标志指向的目录。

控制台模板使用html/template呈现,提供自动转义功能。 要绕过自动转义,请使用safe*功能。,

URL参数在.Params中以地图形式提供。 要使用相同的名称访问多个URL参数,.RawParams是每个参数的列表值的映射。 URL路径在.Path中可用,不包括/consoles/前缀。

控制台还可以访问在-web.console.libraries标志指向的目录中的* .lib文件中找到的{{define"templateName"}}...{{end}}定义的所有模板。 由于这是一个共享命名空间,请注意避免与其他用户发生冲突。 以prom_prom__开头的模板名称保留供Prometheus使用,上面列出的函数也是如此。

四、链接

Prometheus官网地址:https://prometheus.io/
我的Github:https://github.com/Alrights/prometheus

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值