我需要将prometheus irate函数转换为sql语言,我在任何地方都找不到计算逻辑。
我在普罗米修斯 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),但是 40 年代的窗口是如何出现的呢?((201-200)/(50-40))/40 ?
上述普罗米修斯查询的正确数学计算是什么?
如果我有 8 个 cpu 数据,我应该怎么做?我试图搜索文档,但找不到任何适当的解释背后发生了什么。
谢谢