Grafana/PromQL:柜台午夜到午夜的变化

问题描述 投票:0回答:1

假设我有一个 posts_total 计数器。它每天都在增加,并且有各种标签,例如 posts_total{status='active'} 和 posts_total{status='deleted'}。

delta(posts_total{status=~"active|deleted"}[1d])
向我展示了每天变化的滚动图。 enter image description here

但是这不是很有用,因为它是滚动变化,如果我放大它就失去了任何意义,因为它每小时显示不同的费率。 如何获得一个图表来显示每天从午夜到午夜的变化,而不是滚动增量?我想要一个条形图,可以用来准确说明 2 天前或 3 个月前的特定日期增加了多少。

prometheus grafana promql
1个回答
0
投票

delta() 与计数器特定函数 -rate()/irate()/increase()

根据 文档

delta()
应该与仪表一起使用,而不是与计数器一起使用。有 3 个专用函数可与计数器一起使用,用于处理计数器重置并进行推断:
rate()
irate()
increase()
。您很可能需要后者 -
increase()
。这是一篇关于该主题的很棒的文章

图查询

为了显示图表,Grafana 执行类似“范围查询” 的操作来请求指定时间段内的查询结果矩阵。

因此您的查询

increase(posts_total{status=~"active|deleted"}[1d])

会被执行多次以绘制图表。执行了多少次?这取决于所选的时间段参数(“开始”和“结束”)和“步骤”参数。

F.e.如果

start=12-00

end=13-00
step=20m
 - 您应该在图表上看到类似 3 个值,
所有这些值都显示 1 天计数器增加,由查询中的 range
 参数指定( 
1d
)。

因此,这并不是真正的“滚动增量”,而是所请求的 1 天增量(可能)以 1 小时为频率。

保留

range

 > 
step
 是有意义的,因为否则结果会丢失一些样本(想象一下每天执行 1 小时的计数器增加 - 跳过 23 小时的数据)。

© www.soinside.com 2019 - 2024. All rights reserved.