Я использую запрос PromQL для вычисления совокупного трафика c, отправленного / полученного через некоторые интерфейсы на любом узле за последние 60 минут. С метриками Prometheus Node Exporter:
delta(node_network_receive_bytes_total{device=~"ens.*"}[60m])*8
И это прекрасно , поскольку узел не перезагружается в этом интервале , значение - это просто разница между кончиком вектора и его хвостом , Когда система перезагружается и счетчик сбрасывается, значение функции перестает отражать упомянутый результат.
Например, если этот график для node_network_transmit_bytes_total
:
... функция вернет -9MiB вместо 10.2 MiB.
Я думаю, я могу поиграть с rate()
s, чтобы получить оценку, также используя время. Но есть ли лучшая функция / способ получить фактическую вещь ?