Сглаживание графа Графа

Я устанавливаю контроль над инфраструктурой моей компании. Я установил Графану с источником данных Прометея. Я построил свои инструментальные панели и имею довольно "колючие" графики. Мне было интересно, есть ли способ немного сгладить его, чтобы он был более читабельным.

Благодарность!

2 ответа

Я должен предварить свой ответ, сказав, что я новичок в Prometheus и сам привыкаю к ​​PromQL.

Я должен напомнить себе, что "скорость" - это то, что должно применяться только к счетчикам, а не к датчикам (ваш пример с этим согласен). Я собираюсь использовать количество раз, которое хост вызывал connect() для сокета TCP.

node_netstat_Tcp_ActiveOpens

Отрисовывая это, он всегда увеличивается, так что, скорее всего, счетчик, хотя источник данных об экспортерах узлов говорит следующее:

# HELP node_netstat_Tcp_ActiveOpens Statistic TcpActiveOpens.
# TYPE node_netstat_Tcp_ActiveOpens untyped
node_netstat_Tcp_ActiveOpens 20684

У меня есть только один случай, который я отслеживаю, но давайте добавим туда фильтр, только мы не будем запрашивать слишком много временных рядов:

node_netstat_Tcp_ActiveOpens{instance="localhost:9100"}

Давайте добавим "оценку" на это:

rate(node_netstat_Tcp_ActiveOpens{instance="localhost:9100"})

О, но это не помогло сказать, что "ожидаемый вектор диапазона типов в вызове функции" rate ", получил мгновенный вектор"; чтобы отобразить это, нам нужно что-то типа "мгновенный вектор", но мы получили "вектор скорости". Нам нужно указать квант (я не думаю, что используется термин "Прометей"), по которому нужно агрегировать / оконизировать данные временных рядов.

rate(node_netstat_Tcp_ActiveOpens{instance="localhost:9100"}[5m])

Хорошо, это работает, и мы можем поиграть со сглаживанием, изменив 5м на 20м и т.д...

Но шипы могут быть полезны, и "скорость" - это только один из способов работы с данными.

Я думаю, что полезно взглянуть на определенный процентиль данных, который помогает удалить выбросы, но при этом дает некоторую живость отображаемым данным. Здесь я указал 90-й процентиль.

quantile(0.9, rate(node_netstat_Tcp_ActiveOpens{instance="localhost:9100"}[5m]))

Вы захотите попробовать эти более реалистичные данные, чтобы найти хороший квантиль (0,9) и окно (5 м).

Давайте просто предположим, что у этих данных есть шаблон, и мы хотим сравнить данные с данными 1 дня назад:

  quantile(0.9, rate(node_netstat_Tcp_ActiveOpens{instance="localhost:9100"}[5m]))
- quantile(0.9, rate(node_netstat_Tcp_ActiveOpens{instance="localhost:9100"}[5m] offset 1d))

Надеюсь, что это дает вам некоторое представление; это, безусловно, полезная практика для меня по крайней мере:)

Ура, Кэмерон

Я думаю, что вы можете использовать скорость в вашем запросе Premetheus, например:

Верните 5-минутную скорость метрики http_requests_total за последние 30 минут с разрешением 1 минута.

Скорость (http_requests_total[5m])[30m:1m]

Другие вопросы по тегам