байт, кол-во переданных байт) в реальном времени (с точностью до 1 секунды). Сейчас это делается с помощью node exporter + prometheus, который скрапит соответствующие метрики раз в секунду. После чего это визуализируется в графане с помощью выражения: sum(irate(node_network_receive_bytes_total{job="$job", instance=~"$node"}[1m])) by (device) * 8. Последнее время закрадывается подозрение, что такой подход не всегда отображает внезапные скачки использования сетевого трафика (ради этого все и вводилось). Мб есть какие-нибудь другие инструменты для того, чтобы получить адекватный график загруженности сети?
Ну пусть не закрадывается. Что мешает проверить? Где именно по этой гипотезе тормозятся данные?
а на дешборде в графане какой min_interval стоит при этом?
Честно говоря не совсем ясно как проверить. Было бы альтернативное решение, то задеплоил бы его на стейджинге, прогнал бы нагрузочные и сравнил оба подхода. Про торможение данных не совсем понял. Ну если смотреть в prometheus и на его last scrape, то там бывают значения больше одной секунды. Учитывая, что у нас на каждом стенде прометеус стоит, который раз в секунду скрапит метрику с каждой ноды стенда, после чего метрика с этого прометеуса скрапится глобальным прометеусом, из которого она уже в графану попадает, то, конечно, возможны задержки. У меня скорее вопрос про сам подход: высчитывать подобный график с помощью irate.
Сомнения правильные. Почитайте https://valyala.medium.com/why-irate-from-prometheus-doesnt-capture-spikes-45f9896d7832 . Там описано, почему irate - не лучшее средство для обнаружения всплесков на графиках, и приведнны альтернативные способы, как можно надежно отображать всплески на графиках пр любом интервале времени
Обсуждают сегодня