Прометей - условие на основе арифметики меток - PullRequest
0 голосов
/ 08 мая 2020

Предположим, у меня есть метрики c my_metric, и я хотел бы рассчитать разницу между текущими метриками c и метрикой за два дня go на основе метки my_label. Есть ли способ сделать это в PromQL без жесткого кодирования значений меток?

my_metric{exported_job="my_job",instance="dr01:9091",job="pushgateway",my_label="2020-05-01"}   10
my_metric{exported_job="my_job",instance="dr01:9091",job="pushgateway",my_label="2020-05-02"}   20
my_metric{exported_job="my_job",instance="dr01:9091",job="pushgateway",my_label="2020-05-03"}   60

Предположим, мы находимся на 2020-05-01 - ожидаемый результат будет 60-10 = 50.

In другими словами - мне нужен запрос, который в SQL будет примерно таким:

SELECT m_2.value - m_1.value FROM my_metric m_1, my_metric m_2 
WHERE diff_date('day', m_2.my_label, m_1.my_label) = 2

1 Ответ

0 голосов
/ 08 мая 2020

это даст вам разницу между временем вызова запроса и значением metri c и за 2 дня до него:

my_metric{exported_job="my_job",instance="dr01:9091",job="pushgateway"}
- ignoring(my_label) my_metric{exported_job="my_job",instance="dr01:9091",job="pushgateway"} offset 2d

Подробнее о ключевом слове offset вы можете прочитать здесь: https://prometheus.io/docs/prometheus/latest/querying/basics/#offset -модификатор

...