0

我需要将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 数据,我应该怎么做?我试图搜索文档,但找不到任何适当的解释背后发生了什么。

谢谢

4

0 回答 0