Прометей: получение кумулятивного KwH из образцов милливатт - PullRequest
0 голосов
/ 09 марта 2019

У меня есть устройство мониторинга энергопотребления, Wemo Belkin, которое сообщает о текущем использовании в милливаттах, и я экспортирую его в прометей.То, что я хотел бы, - это график, который показывает мне совокупный KwH, монотонно увеличивающийся, с того момента, как я начал собирать данные.

Следующий запрос, показанный в таблице с min_step = 1h, показывает мне KwH за каждый час, и они складываются с тем, что я считаю общим KwH, поэтому я почти уверен, что мои данные верны:

sum_over_time(current_power[1h])/1000/1000/count_over_time(current_power[1h])

Построение этого же запроса на графике не делает то, что я хочу, потому что я хочу кумулятивный итог, а не ряд отдельных часовых итогов.Если бы я мог просто суммировать результаты этого запроса, я думаю, что он будет делать то, что я хочу.Тем не менее, оператор sum(), кажется, просто не выполняет то, что, как я думаю, будет, когда обернутый вокруг вышеупомянутого запроса.

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

Мне кажется, я нашел работоспособное решение с использованием подзапросов Prometheus.Я считаю, что мне пришлось обновить мою версию Prometheus, чтобы получить поддержку подзапроса.С помощью подзапросов можно рассчитать киловатт-часы и затем суммировать их.Я начал с этого:

sum_over_time( (sum_over_time(current_power[1h])/1000/1000/count_over_time(current_power[1h]))[1y:1h] )

Затем я хотел получить более высокое разрешение (приведенное выше будет немного отставать), поэтому я сократил интервалы до 5 минут:

sum_over_time( (sum_over_time(current_power[5m])/1000/1000/count_over_time(current_power[5m]))[1y:5m] )/12

Это дает мнеКвт за последний год.Я тестировал только полтора дня.

0 голосов
/ 10 марта 2019

sum_over_time суммирует метрику за определенный вами период времени (бит в квадратных скобках) получение коммутативного числа из датчика / гистограммы технически невозможно, если вы не собираетесь хранить свои данные вечно, что технически невозможно :) чтобы правильно получить то, что вы хотите, вам нужно будет превратить это из метрики датчика / гистограммы в метрику приращения

...