Prometheus 查询之间的差异

Prometheus 查询之间的差异,prometheus,grafana,promql,Prometheus,Grafana,Promql,我对使用普罗米修斯还不熟悉,我想了解一些事情 我有一个java web应用程序,它公开了一个名为“我的计数器”的计数器 以下查询之间有什么区别 sum(increase(my_counter[1m])) sum(increase(my_counter[3m])) 如果我在1小时的相同时间间隔内运行这些查询,为什么这两个查询返回不同的结果 我试图实现的是查看计数器在可配置的时间段内增加了多少 谢谢 另外,我实际上是在使用Grafana运行查询并选择时间范围。我假设“1小时的相同时间间隔”意味着

我对使用普罗米修斯还不熟悉,我想了解一些事情

我有一个java web应用程序,它公开了一个名为“我的计数器”的计数器

以下查询之间有什么区别

sum(increase(my_counter[1m]))

sum(increase(my_counter[3m]))
如果我在1小时的相同时间间隔内运行这些查询,为什么这两个查询返回不同的结果

我试图实现的是查看计数器在可配置的时间段内增加了多少

谢谢

另外,我实际上是在使用Grafana运行查询并选择时间范围。

我假设“1小时的相同时间间隔”意味着在运行显示的查询时,已从时间范围控制面板中选择了完全相同的小时

您的查询之间的区别在于它们查看不同的时间范围。第一个检查我的_计数器在过去1分钟内增加了多少,第二个检查我的_计数器在过去3分钟内增加了多少

时间和计数器值示例:

01:20:00 => my_counter: 0
01:21:00 => my_counter: 1
01:22:00 => my_counter: 2
01:23:00 => my_counter: 2
01:23:45 => my_counter: 4 (This is the moment of my_counter examination. Notice the time.)
  • 在01:23:45,第一个查询将查看01:22:45和01:23:45之间的1分钟时间范围,并将显示大约2分钟的增长
  • 同时,第二个查询将查看从01:20:45到01:23:45的3分钟时间段,并显示大约增加4(因为三分钟前01:20:45 my_计数器的值仍然为0)
在Grafana中看到的每个数据点都会发生同样的情况。递增查询被外推以覆盖整个时间范围,这意味着您可能还会看到非英格特值。您可以在这里找到。

我假设“相同的时间间隔为1小时”意味着在运行显示的查询时,从时间范围控制面板中选择了完全相同的时间间隔

您的查询之间的区别在于它们查看不同的时间范围。第一个检查我的_计数器在过去1分钟内增加了多少,第二个检查我的_计数器在过去3分钟内增加了多少

时间和计数器值示例:

01:20:00 => my_counter: 0
01:21:00 => my_counter: 1
01:22:00 => my_counter: 2
01:23:00 => my_counter: 2
01:23:45 => my_counter: 4 (This is the moment of my_counter examination. Notice the time.)
  • 在01:23:45,第一个查询将查看01:22:45和01:23:45之间的1分钟时间范围,并将显示大约2分钟的增长
  • 同时,第二个查询将查看从01:20:45到01:23:45的3分钟时间段,并显示大约增加4(因为三分钟前01:20:45 my_计数器的值仍然为0)

在Grafana中看到的每个数据点都会发生同样的情况。递增查询被外推以覆盖整个时间范围,这意味着您可能还会看到非英格特值。在这里您可以找到。

您好,谢谢您的解释。我想我理解了你的解释,但仍有一些不清楚的地方。求和函数应分别将所有1m和3m的间隔相加。这意味着对于1m,我将有60个较小值的间隔,而3m将提供20个较大值的间隔。尽管如此,所有这些的总和仍然应该是相同的。在您提供的示例中,在这两种情况下,总和应返回4。是吗?嗨,谢谢你解释一下。我想我理解了你的解释,但仍有一些不清楚的地方。求和函数应分别将所有1m和3m的间隔相加。这意味着对于1m,我将有60个较小值的间隔,而3m将提供20个较大值的间隔。尽管如此,所有这些的总和仍然应该是相同的。在您提供的示例中,在这两种情况下,总和应返回4。对吗?