Как использовать прогнозирование в Прометеи. - PullRequest
0 голосов
/ 15 июня 2019

Я довольно новичок в Prometheus,

Я пытаюсь предсказать следующие 5 часов использования процессора на узле 1 и узле 2.

Мой код

'''

    predict_linear(cpu_usage[5m],5*3600)

'' 'Поскольку cpu_usage включает в себя два узла, когда я использую приведенное выше уравнение, я получил два результата прогнозирования, которые мне не нужны.

Поэтому я улучшаю свой код, добавляя '' '

    sum(predict_linear(cpu_usage[5m],5*3600)).

' '. Я не уверен, что это правильный путь или нет.Я прочитал документ, и в нем упоминалось, что предикат_линейный предназначен только для калибровки.

Спасибо, ребята,

1 Ответ

1 голос
/ 17 июня 2019

Проактивный мониторинг не относится к процессору. Он скорее предназначен для исчерпания системных ресурсов, таких как память или место на диске. Нет ничего плохого в том, чтобы использовать процессор на 100%, если это не означает, что у вашего приложения есть проблемы с производительностью.

Если у вас действительно есть некоторые тесты, показывающие, что процессор не должен достигать 100%, это скорее на реактивной основе: вы хотите получать оповещения, если процессор застрял на 100% процессоре в течение определенного периода времени.

Что касается вашего вопроса, прогноз, основанный на 5 минутах данных для прогнозирования следующих 5 часов, будет очень шумным. Обычно приложение увеличивает потребление в течение нескольких минут (даже десятков минут). Более того, даже если форма использования памяти приложения является идеальным шагом, функция predic_linear() использует линейную регрессию, а вычислит скорость, усредненную по нижней и верхней части шага (в некоторой точке).

И эта небольшая норма потребления быстро сложится, если интерполировать до 5 часов. Например, если ваш узел настроен как средний размер (4 ГБ), и при t0 у вас потребление памяти почти равно 0, максимальная скорость, не определяющая нехватку памяти, будет 4*Gi/(5*60)=~13MB/min. Если вы предупредите об этом, у вас будет много ложных срабатываний.

Я нашел это полезным для:

  • увеличение диапазона данных измерения (эмпирическое правило ~ 20% или 25% времени интерполяции, поэтому 1 ч для прогнозирования 5 ч)
  • адаптировать условие for в правилах для уменьшения ложных срабатываний
  • добавить ограничение на потребление тока: если текущий уровень составляет менее 60%, есть вероятность, что обнаруженное отключение не реально

Наконец, в вашем вопросе много вопросов:

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