我需要将prometheus irate函数转换为sql语言,并且我在任何地方都找不到真正的计算逻辑。
我在prometheus sql中有以下查询:
100-(按(实例)平均值(irate(node_cpu_seconds_total {job =“ node”,mode =“ idle”} [40s]))* 100)
假设我有一个CPU的以下数据:
v 20 50 100 200 201 230
----x-+----x------x-------x-------x--+-----x-----
t 10 20 30 40 50 60
| <-- range=40s -->|
t
我的问题与postgres并没有真正的关系,因为如果我知道应该开发什么公式,就可以在sql中解决此问题。
我知道我必须获得最后两个数据点的差,并将value_diff除以time_diff:
(201-200)/(50-40),但是40s窗口如何进入画面? ((201-200)/(50-40))/ 40吗?
上述普罗米修斯查询的正确数学计算是什么?
如果我有8个cpu数据,我应该怎么做? 我试图搜索文档,但找不到任何适当的解释。
谢谢