![](/img/trans.png)
[英]Prometheus queries to get CPU and Memory usage in kubernetes pods
[英]How to get cpu and memory usage of nodes/pods in prometheus?
作为初学者,我已经尝试过 k9s 和 kubernetes ' kubectl top nodes
',对于 cpu 和 memory 的使用和值是匹配的。同时我尝试使用 prometheus UI,使用 ' avg(container_cpu_user_seconds_total{node="dev-node01"})
and_cpu_user_seconds)_to' ' avg(container_cpu_usage_seconds_total{node="dev-node01"})
' 用于 dev-node01。 我无法获得匹配的值。任何帮助将不胜感激,因为我是初学者。请提供任何帮助。
如果指标“container_cpu_user_seconds_total”显示 output 那么它应该可以工作。 我使用了您上面提到的相同查询,它对我有用。 检查 Prometheus 中的图形和控制台选项卡。
请试试这个
avg(container_cpu_user_seconds_total{node="NODE_NAME"})
container_cpu_usage_seconds_total
是一个计数器,因此您需要了解它的含义以及如何查询计数器。
在这种情况下,您可能希望使用此处记录的 function rate
。
rate(v range-vector)
计算范围向量中时间序列的每秒平均增长率...rate
只能与计数器一起使用...请注意,当将rate()
与聚合运算符结合使用时,始终先取一个rate()
,然后聚合。
每个 pod CPU 使用情况的示例查询是:
sum(rate(container_cpu_usage_seconds_total{}[1h])) by (pod_name, namespace)
此外,您可能需要查看Kubecost以了解 k8s 分配指标和 API。
以下 PromQL 查询返回每个命名空间中 pod 的 CPU 使用率(作为使用的 CPU 核心数):
sum(rate(container_cpu_usage_seconds_total{container!=""})) by (namespace, pod)
container!=""
过滤器是过滤掉 cgroups 层次结构度量所必需的 - 有关详细信息,请参阅此答案。
以下查询返回每个命名空间中 pod 的 memory 使用情况:
sum(container_memory_usage_bytes{container!=""}) by (namespace, pod)
以下查询按节点返回 CPU 使用率(作为使用的 CPU 核心数):
sum(rate(container_cpu_usage_seconds_total{container!=""})) by (node)
以下查询按节点返回 memory 使用情况:
sum(container_memory_usage_bytes{container!=""}) by (node)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.