Как получить среднее значение по времени только в течение дня в Прометея - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время я пытаюсь получить средний процент использования оперативной памяти за последний месяц с помощью следующего запроса:

100 - ((avg_over_time(node_memory_MemAvailable_bytes{instance="...",job="..."}[4w]) * 100) / node_memory_MemTotal_bytes{instance="...",job="..."})

Запрос работает правильно, но теперь я хотел бы отфильтровать значения, собранные за ночь, чтобы получить реальный процент использования в течение дня: возможно ли получить среднее значение только для собранных значений с 8:00 до 20:00?

Заранее спасибо!

Mathias

1 Ответ

0 голосов
/ 30 октября 2018

Поскольку у вас не может быть диапазона с дырами (то есть последние 4 недели, но только с 8:00 до 20:00), вам необходимо создать записанное правило, которое записывает доступную память только в течение дня, а затем вычислить * 1001. * за временной ряд, произведенный указанным правилом.

Правило относительно легко установить

node_memory_MemAvailable_bytes
  and 
hour(timestamp(node_memory_MemAvailable_bytes)) >= 8
  and 
hour(timestamp(node_memory_MemAvailable_bytes)) < 20

но изначально у него не будет никакой истории, поэтому вам придется подождать несколько дней, прежде чем вы получите из него какие-либо значимые данные. Также обратите внимание, что это выражение будет фильтровать выборки между 8:00 UTC и 20:00 UTC. Возможно, вам придется настроить его в соответствии с вашим часовым поясом.

...