171 похожих чатов

Всем привет! Нам на проекте необходим мониторинг сети (кол-во полученных

байт, кол-во переданных байт) в реальном времени (с точностью до 1 секунды). Сейчас это делается с помощью node exporter + prometheus, который скрапит соответствующие метрики раз в секунду. После чего это визуализируется в графане с помощью выражения: sum(irate(node_network_receive_bytes_total{job="$job", instance=~"$node"}[1m])) by (device) * 8. Последнее время закрадывается подозрение, что такой подход не всегда отображает внезапные скачки использования сетевого трафика (ради этого все и вводилось). Мб есть какие-нибудь другие инструменты для того, чтобы получить адекватный график загруженности сети?

4 ответов

4 просмотра

Ну пусть не закрадывается. Что мешает проверить? Где именно по этой гипотезе тормозятся данные?

а на дешборде в графане какой min_interval стоит при этом?

Konstantin-Bobkov Автор вопроса
Pavel Zheltouhov
Ну пусть не закрадывается. Что мешает проверить? Г...

Честно говоря не совсем ясно как проверить. Было бы альтернативное решение, то задеплоил бы его на стейджинге, прогнал бы нагрузочные и сравнил оба подхода. Про торможение данных не совсем понял. Ну если смотреть в prometheus и на его last scrape, то там бывают значения больше одной секунды. Учитывая, что у нас на каждом стенде прометеус стоит, который раз в секунду скрапит метрику с каждой ноды стенда, после чего метрика с этого прометеуса скрапится глобальным прометеусом, из которого она уже в графану попадает, то, конечно, возможны задержки. У меня скорее вопрос про сам подход: высчитывать подобный график с помощью irate.

Сомнения правильные. Почитайте https://valyala.medium.com/why-irate-from-prometheus-doesnt-capture-spikes-45f9896d7832 . Там описано, почему irate - не лучшее средство для обнаружения всплесков на графиках, и приведнны альтернативные способы, как можно надежно отображать всплески на графиках пр любом интервале времени

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
20
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
Или имеется ввиду именно что медленнее работа компилятора?
Куся 🌿⃤ __UKS
9
У меня есть скрипт написанный на crystal, который крутится на vm с 512mb ram, и он время от времени вылетает из-за нехватки памяти, поэтому я увеличил память до 2gb, но поведе...
Сергій
1
let sum = [1, 2, 3].map { String($0) }.flatMap { Int($0) }.reduce(0, +) let sum = [1, 2, 3].map { (num: Int) -> String in String(num) }.flatMap { (str: String) -> Int? in Int...
Yakov
7
Карта сайта