問題
Prometheus OpenMetrics integration for Docker or Kubernetesをインストールしたところ、メモリやCPUを大量に消費してしまいました。
解決
数百のターゲットをスクレイピングする巨大なクラスタで統合を実行すると、CPU とメモリの消費量が増加し、ワーカーの数がscrape_durationに影響を与える可能性があります。
例えば、Prometheus OpenMetricsの統合では、2.5のCPUと700MbのRAMを消費します。
800 targetsをスクレイピングし、それぞれ1000 timeseriesを露出させます。- それぞれのレイテンシは
150msで、scrape_durationは 30 秒です。
資源の消費を抑えるために
インテグレーションを最新の利用可能なイメージに更新します。
emitter_harvest_periodを下げることで収穫時間を短縮します。(デフォルト値は1sであり、間隔は200msより小さくすることはできません。)メトリクスがより頻繁に送信されるため、メモリ消費量が削減されます。scrape_durationを増やすことでメトリクスの収集頻度を減らし、メモリ消費と CPU 使用率の両方を削減します。ワーカーの数を減らして、メモリ消費と CPU 使用率の両方を削減します。スクレイピングの速度が低下し、
scrape_duration.を超える可能性があります。- インテグレーションを、利用可能な最新バージョンの画像に更新します。
worker_threadsデフォルト値の4から希望の値まで減らします。