繁体   English   中英

如何获取 prometheus 中节点/pod 的 cpu 和 memory 使用情况?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM