#prometheus #monitoring #metrics #prometheus-node-exporter #prom-client
Вопрос:
Как prometheus собирает информацию о процессоре во время интервалов, которые он не очищает? Например, у меня есть мои scrape_interval: 15s
и процессорные шипы до 90% в течение 15 секунд, которые prometheus не очищал… Потеряю ли я эту важную информацию, агрегируемую в средние показатели CPU, используемые моим процессом rate(process_cpu_system_seconds_total[15s]) * 100
?
Мне просто нужно понять, что если интервал очистки равен n секундам, то данные мониторинга за эти n секунд собираются или они просто теряются?
Ответ №1:
Это не «потеряно», но вы правы, что это никогда не наблюдается.
Почти все измерения страдают от ошибок из-за этого необходимого приближения или занижения выборки.
Следствием этого является то, что любое вычисление измерения почти всегда настолько же хорошо, насколько и данные, которые были получены.
Проблема усугубляется, когда выборочные данные дополнительно «отбираются» для минимизации объема памяти, например, сохраняя только ежедневные данные за периоды после последнего месяца.
Например, предположим, что приведенное ниже является точной записью какого-либо измерения:
1,2,1,9,1,4,1,1,1,9
Если выборка извлекает все остальные значения:
1,1,1,1,1
Это почти полностью не отражает данные
среднее значение: 1 против 3
p90: 1 против 9
Комментарии:
1. тогда невозможно точно отслеживать всплески процессора / потребление памяти с помощью prometheus?
2. Это зависит от того, как вы определяете «точно». Ни одна система мониторинга не будет фиксировать все возможные измерения всех возможных показателей; всегда будут измерения, которые не будут фиксироваться, если только состояние не меняется достаточно редко, чтобы почти невозможно было пропустить изменения. Следует задать следующие вопросы: (а) достаточно ли того, что вы можете зафиксировать, для ваших нужд? (b) вы можете смириться с ошибкой при наблюдении за некоторым подмножеством всех данных.