前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prometheus引入‘@’修饰符

Prometheus引入‘@’修饰符

作者头像
CNCF
发布2021-03-15 17:22:36
8090
发布2021-03-15 17:22:36
举报
文章被收录于专栏:CNCF

作者:Ganesh Vernekar

你有没有选择过10个时间序列,但得到不是10个,而是100个?如果有,这是给你的。让我带你了解一下潜在的问题是什么,以及我是如何解决它的。

目前,topk()查询仅作为一个即时查询才有意义,你得到确切的k个结果,但当你作为一个范围查询运行它时,你可以得到更多的结果,因为每一步都是独立计算的。这个@修饰符允许你修复范围查询中所有步骤的排名。

在Prometheus v2.25.0中,我们引入了一个新的PromQL修饰符@。与offset修饰符让你对向量选择器、范围向量选择器和子查询的求值进行相对于求值时间的固定时间偏移类似,@修饰符让你对这些选择器的求值进行固定,而不考虑查询求值时间。该语法的功劳归于Björn Rabenstein。

代码语言:javascript
复制
<vector-selector> @ <timestamp>
<range-vector-selector> @ <timestamp>
<subquery> @ <timestamp>

<timestamp>是一个unix时间戳,用float文字描述。

例如,查询http_requests_total @ 1609746000返回的是http_requests_total在2021-01-04T07:40:00+00:00的值。查询rate(http_requests_total[5m] @ 1609746000)返回同时http_requests_total的5分钟速率。

此外,start()和end()也可以作为特殊值作为@修饰符的值。对于范围查询,它们分别解析到范围查询的开始和结束,并且对所有步骤保持相同。对于即时查询,start()和end()都解析为计算时间。

回到topk()修复的讨论,下面的查询绘制了这些系列中http_requests_total的1m速率,它们的最后一个1h速率位于前5位。因此,现在你可以理解topk(),甚至可以将其作为一个范围查询,精确地绘制出k个结果。

代码语言:javascript
复制
rate(http_requests_total[1m]) # This acts like the actual selector.
  and
topk(5, rate(http_requests_total[1h] @ end())) # This acts like a ranking function which filters the selector.

类似地,topk()排名可以用其他函数代替,比如histogram_quantile(),它现在只用于即时查询。rate()可以用<aggregation>_over_time()等替换。让我们知道你如何使用这个新的修饰符!

@修饰符默认是禁用的,可以使用标志--enable-feature=promql-at-modifier来启用。在这篇博文[1]中了解更多关于特性标志的信息,并在这里[2]找到@修饰符的文档。

参考资料

[1]

引入特性标志: https://prometheus.io/blog/2021/02/17/introducing-feature-flags/

[2]

@修饰符文档: https://prometheus.io/docs/prometheus/latest/querying/basics/#modifier

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考资料
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档