Prometheus 普罗米修斯:从毫瓦样本中获取累积千瓦时

Prometheus 普罗米修斯:从毫瓦样本中获取累积千瓦时,prometheus,Prometheus,我有一个能源监测装置,一个Belkin Wemo,它以毫瓦为单位报告当前的使用情况,我还有那些被输出到普罗米修斯的装置。我想要的是一个图表,它显示了自我开始收集数据以来的累计KwH,单调递增 下面的查询以min_step=1h绘制在一个表中,显示了每小时的KwH,它们加起来等于我认为的总KwH,因此我非常确定我的数据是正确的: sum\u over\u time(当前功率[1h])/1000/1000/count\u over\u time(当前功率[1h]) 在图形中绘制同一查询并不能满足我的

我有一个能源监测装置,一个Belkin Wemo,它以毫瓦为单位报告当前的使用情况,我还有那些被输出到普罗米修斯的装置。我想要的是一个图表,它显示了自我开始收集数据以来的累计KwH,单调递增

下面的查询以min_step=1h绘制在一个表中,显示了每小时的KwH,它们加起来等于我认为的总KwH,因此我非常确定我的数据是正确的:

sum\u over\u time(当前功率[1h])/1000/1000/count\u over\u time(当前功率[1h])


在图形中绘制同一查询并不能满足我的要求,因为我想要的是累计总数,而不是一系列的每小时总数。如果我能对这个查询的结果求和,我想它会满足我的要求。然而,
sum()
操作符似乎并没有像我想象的那样围绕上述查询进行操作。

sum\u over\u time在您为其定义的时间范围内(方括号中的位)对度量进行汇总 从仪表/柱状图中获取一个完整的数字在技术上是不可能的,除非您想永远保存数据,这在技术上是不可能的:)
为了正确地得到您想要的,您需要将度量/直方图度量转换为增量度量

我想我找到了一个可行的解决方案,使用Prometheus子查询。我相信我必须升级我的Prometheus版本才能获得子查询支持。通过子查询,可以计算千瓦时,然后将其相加。我从这个开始:

sum_over_time( (sum_over_time(current_power[1h])/1000/1000/count_over_time(current_power[1h]))[1y:1h] )
然后我想要更高的分辨率(上面的分辨率会有点滞后),所以我将时间间隔缩短为5分钟:

sum_over_time( (sum_over_time(current_power[5m])/1000/1000/count_over_time(current_power[5m]))[1y:5m] )/12
这给了我去年的千瓦时。我只测试了一天半