Сумма PromQL с течением времени

#prometheus #grafana #promql

#prometheus #графана #promql

Вопрос:

у меня есть некоторые проблемы при суммировании значений prometheus вместе.

мои строки :

 METRIC{applicationName="MYAPP", column="MYCOLUMN} = 2
METRIC{applicationName="MYAPP", column="MYCOLUMN} = 2
METRIC{applicationName="MYAPP", column="MYCOLUMN} = 1
METRIC{applicationName="MYAPP", column="MYCOLUMN} = 3
METRIC{applicationName="MYAPP", column="MYCOLUMN} = 1
  

==== 9

 sum(sum_over_time(METRIC{NAME="TEST" , applicationName="MYAPP"} [3h])) by (applicationName)

{applicationName="MYAPP"} value = 27
  

Должно быть 9

В основном то, что я пробовал накануне, умножается на 3 (нет, это не период времени, уже пробовал)

— В основном я хотел бы получить эти значения в таблице grafana (7.1),

если я переведу их в график (МЕТРИКА{ApplicationName=»MYAPP»), тогда total будет в порядке… Пробовал разные подходы, и упомянутый способ является наиболее точным, чего я достиг..

Тот же результат в консоли primetheus..

Ответ №1:

Я полагаю, что строки выше представляют то, что вы получите, если вы нажмете METRIC на Prometheus.

Если это так, то вы получили значения по разным измерениям в один и тот же момент времени. И из этого вы не знаете, каковы эти значения за 3-часовой период, которые вы хотели бы суммировать.

Если вы сейчас это сделаете sum(METRIC) , вы получите 9.

Вы можете ввести METRIC[3h] Prometheus, чтобы получить эти точные значения, в течение 3 часов.

Выполнение sum(sum_over_time(METRIC[3h])) должно дать вам сумму всех значений, отображаемых в приведенном выше эксперименте. Кажется, это 27. И мне кажется, что ваша метрическая частота равна 1 часу, а значения не изменились в течение этих 3 часов, и именно поэтому вы получили 3 x 9 = 27. Но это только мое предположение.

Я намеренно опустил фильтры и группы. Они немного противоречивы.