How to turn prometheus irate function to sql

236 Views Asked by At

I need to turn prometheus irate function to sql language, and i cannot really find the calculation logic anywhere.

i have the following query in prometheus sql:

100 - (avg by (instance) (irate(node_cpu_seconds_total{job="node",mode="idle"}[40s])) * 100)

Let's say i have the following data for a cpu:

v  20     50     100     200     201      230   
----x-+----x------x-------x-------x--+-----x-----
t  10     20     30      40      50       60   
    |      <--     range=40s   -->|
                                  t   

My question is not really related to postgres, since i could solve this problem in sql if i would know what is the formula i should develop.

i understand that i have to get the last two datapoints difference and divide value_diff with time_diff:

(201-200)/(50-40), but how the 40s window comes into the picture? ((201-200)/(50-40))/40 ?

What would be the proper mathematical calculation for the above prometheus query?

And how i should do the same if i have 8 cpu data? I tried to search for documentation, but could not find any proper explanation what is going on behind.

Thanks

0

There are 0 best solutions below