web-dev-qa-db-ja.com

監視としてプロメテウスを使用して、kubernetesでのコンテナのCPU使用量を計算する方法は?

Kubernetesクラスター内のすべてのポッドのCPU使用量を計算します。プロメテウスの2つの指標が役立つことがわかりました。

_container_cpu_usage_seconds_total: Cumulative cpu time consumed per cpu in seconds.
process_cpu_seconds_total: Total user and system CPU time spent in seconds.

Cpu Usage of all pods = increment per second of sum(container_cpu_usage_seconds_total{id="/"})/increment per second of sum(process_cpu_seconds_total)
_

しかし、sum(process_cpu_seconds_total)の増分よりも大きい_container_cpu_usage{id="/"}_の毎秒の増分が見つかりました。そのため、使用量は1より大きい場合があります...

18
Haoyuan Ge

これは、クラスターレベルでCPU使用率を取得するために使用しています。

sum (rate (container_cpu_usage_seconds_total{id="/"}[1m])) / sum (machine_cpu_cores) * 100

また、各ポッドのCPU使用率も追跡します。

sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)

GitHubに完全なkubernetes-prometheusソリューションがあります。もっと多くのメトリックで役立つかもしれません: https://github.com/camilb/prometheus-kubernetes

enter image description here

enter image description here

26
Camil

主にノードごとのリソース使用率の概要を把握するために、独自のプロメテウスエクスポーター( https://github.com/google-cloud-tools/kube-eagle )を作成しました。しかし、CPUとRAMリソース。

sum(eagle_pod_container_resource_usage_cpu_cores)

ただし、名前空間、ノード、またはノードプールごとにCPU使用率を簡単に取得することもできます。

1
kentor

以下のクエリも使用できます:

avg (rate (container_cpu_usage_seconds_total{id="/"}[1m]))
0
Deepak