Метрики Prometheus node_exporter - огромные всплески в Grafana

Наша установка включает:

  • несколько узлов Debian 9.12 с Prometheus node_exporter v. 0.18.1, установленным как служба
  • Сервер Prometheus v. 2.14.0 (на Windows Server 2016), очищающий метрики от узлы
  • Grafana, визуализирующие метрики

По сути, наша нагрузка может быть непостоянной, поэтому мы хотели бы собирать детали, поэтому в настоящее время мы очищаем метрики каждые 10 секунд и отображаем 1-минутную скорость в Grafana с такими запросами:

rate(node_network_receive_bytes_total{instance=~'$node',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[1m])*8

В Grafana мы видим огромные всплески: для сетевых экземпляров со средней пропускной способностью ниже 100 Мбит / с всплески превышают сотни гигабит в секунду, что, очевидно, технически невозможно. То же самое происходит с загрузкой ЦП, временем ожидания ЦП, iops дисков и другими метриками node_exporter , в целом это выглядит так, обратите внимание на резкую разницу между средними и максимальными значениями:

network interface spikes

По-видимому, это происходит потому, что Прометей, похоже, «пропустить» отдельные точки данных, и в зависимости от того, как работает rate , он сравнивает «последнюю» точку с нулем и текущим node_network_receive_bytes_total , накопленным с момента последнего запуска, и ускоряет вывод. Если мы попытаемся переключиться на irate , пики просто подскочат еще выше, что, кажется, подтверждает нашу догадку.

Запрос нашего сервера обработки Prometheus на предмет точек данных в определенных временных диапазонах, где наш коэффициент равен при наличии пиков мы не видим никаких обнуленных точек, данные в «остром» временном диапазоне выглядят как последовательное увеличение:

node_network_receive_bytes_total{device="ens8",instance="cassandra-xxxxxxxxx0:9100",job="cassandra-xxxxxxxxx"}
3173659836137 @1585311247.489
3173678570634 @1585311257.49
3173696782823 @1585311267.491
3173715943503 @1585311277.492
3173715937480 @1585311277.493
3173731328095 @1585311287.495
3173743034248 @1585311297.502
3173756482486 @1585311307.497
3173775999916 @1585311317.497
3173796096167 @1585311327.498
3173814354877 @1585311337.499
3173833456218 @1585311347.499
3173852345655 @1585311357.501

То же на графике:

prometheus graph

скорость запрос скорость (node_network_receive_bytes_total {instance = "cassandra- xxxxxxxxx0: 9100 ", device! ~ 'tap. * | veth. * | br. * | docker. * | virbr * | lo *'} [1m]) * 8 одновременно показывает удивительно другое изображение диапазон:

prometheus rate graph

Хотя документация Prometheus заявляет, что он должен экстраполировать недостающие точки данных, а также некоторые проблемы с скоростью / irate , широко признаны , на данный момент мы

Наша самая большая проблема в том, что пики делают невозможным визуализацию и, что более важно, установку лимитов / предупреждений. ble.

На данный момент мы уверены только в том, что о Графане не может быть и речи, а проблема кроется в нашем Прометее, и вопрос такой - может быть, вы сталкивались с чем-то похожим? Если да, то как вы с этим справляетесь?

Если нет, может быть, вы могли бы предложить какой-нибудь дальнейший подход к диагностике?

В любом случае, спасибо всем, по крайней мере, за то, что прочитали до этого момента.

1
задан 27 March 2020 в 16:36
1 ответ
3173715943503 @1585311277.492
3173715937480 @1585311277.493

Значения идут в обратном направлении , что рассматривается как сброс счетчика. Обычно это указывает на ошибку ядра, однако, учитывая, что значения отличаются друг от друга всего на одну миллисекунду, я собираюсь предположить, что происходит то, что вы не упомянули ключевую деталь, что на самом деле это объединенные данные из двух разных Prometheus серверы - которые, как вы обнаружили, не будут работать.

1
ответ дан 30 March 2020 в 00:17