Как превратить Imet функцию Прометей в SQL
Мне нужно превратить функцию Prometheus irate в язык SQL, и я не могу найти логику вычислений в любом месте.
У меня есть следующий запрос в Prometheus SQL:
100 - (avg by (instance) (irate (node_cpu_seconds_total {job = "node", mode = "idle"} [40s])) * 100)
Допустим, у меня есть следующие данные для процессора:
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 процессоров? Я пытался найти документацию, но не смог найти правильного объяснения того, что происходит позади.
Спасибо