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