web-dev-qa-db-ja.com

Prometheusを使用したCPU使用率の監視

Prometheusがインストールされ実行されているマシンのCPU使用率を監視しようとしています。メトリック 'process_cpu_seconds_total'があります。私はこの測定基準の怒りまたは率を見つけることができます。しかし、CPU使用率のパーセンテージ値をどのように考え出すかはあまりわかりません。とにかく、このprocess_cpu_seconds_totalメトリックを使用して、Prometheusが実行されているマシンのCPU使用率を見つけることができますか?

6
Arnav Bose

他の人の利益のための遅い答えも:

プロメテウスプロセスが使用するCPUの割合だけを監視したい場合は、process_cpu_seconds_totalを使用できます。何かのようなもの:

avg by (instance) (irate(process_cpu_seconds_total{job="prometheus"}[1m]))

ただし、マシンの一般的なモニターが必要な場合は、 ノードエクスポーター を使用する必要があります。

PrometheusCPUモニタリングに関するBrianBrazilの投稿は、非常に関連性があり、有用です: https://www.robustperception.io/understanding-machine-cpu-usage

3
lambfrier

そのための1つの方法は、適切なcgroupリソースレポートを活用することです。 Cgroupは、CPUコア時間を1024共有に分割します。したがって、プロセスが消費する共有の数を知ることにより、CPU使用率のパーセントを常に見つけることができます。

今あなたの場合、CPU秒の変化率がある場合、これはプロセスが最後の時間単位でCPU時間を使用した時間です(これから1秒と仮定します)。次に、コアの数によって異なりますが、最後の1ユニットの1CPUは1CPU秒になります。したがって、変更率が3で、コアが4つある場合。

3/4 = 75% CPU utilization.

Process_total_cpu時間は、遅延や遅延などのためにおそらくあまり正確ではないため、これは概算にすぎません。

0
ZhijieWang