PromQL - 如何将“sum_over_time”与“by”结合起来

mos*_*osh 5 grafana promql

我正在尝试编写一个查询,该查询将返回以下信息:

对于度量 m1(计数器类型)- 返回值的总和,在 1h 的滑动窗口中按 (p1,p2) 分组。

我认为基础应该是这样的:

sum_over_time(m1[1h])
Run Code Online (Sandbox Code Playgroud)

但这不能按 (p1,p2) 分组

进行分组的一种方法是

sum(sum_over_time(m1[1h])) by (p1, p2) 
Run Code Online (Sandbox Code Playgroud)

但我不确定在这里添加外部总和是否只是为了分组,是可行的方法。

另一种可能性是:

topk(100, sum_over_time(m1[1h])) by (p1, p2) 
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,分组似乎并不正确,因为结果包含许多具有相同(p1,p2)和不同其他标签(p3,p4)的行

在滑动窗口中通过一些标签对指标求和的正确方法是什么?

小智 3

您可以将 sum_over_time 包装成 sum 作为解决方法,查询将顺利进行。

例如:

topk(100, sum(sum_over_time(m1[1h])) by(p1, p2))
Run Code Online (Sandbox Code Playgroud)