我在具有3个节点的k8s集群上有一个Fluentd守护程序集。我想获得一个代表百分比的值,该值可以为我提供有关当前节点上流利的Pod占用的每个节点上的CPU(以百分比为单位)的信息。
在普罗米修斯做这件事的方式是什么?
谢谢。
答案 0 :(得分:2)
您可能想在Prometheus中使用container_cpu_usage_seconds_total
查询。
像这样:
sum (rate (container_cpu_usage_seconds_total{}[5m])) by (container_name)
这将返回系统中所有pod by
容器名称的CPU使用率。
您还可以应用一些过滤器来细化输出。例如:
sum (rate (container_cpu_usage_seconds_total{container_name=~"fluentd.*"}[5m])) by (container_name)
上面的查询将返回与以fluentd
开头的容器名称相匹配的pod的CPU使用率
您可以将这些Pod的使用除以群集的总cpu核心,以百分比找到使用情况,如下所示:
sum (rate (container_cpu_usage_seconds_total{container_name=~"fluentd.*"}[5m])) / sum (machine_cpu_cores{}) * 100
最后,为了获得特定容器名称上特定节点上cpu核心使用总量的百分比,您可以添加其他过滤器:instance =“ INSTANCE_NAME”:
sum (rate (container_cpu_usage_seconds_total{container_name=~"fluentd.*", instance="INSTANCE_NAME"}[5m])) / sum (machine_cpu_cores{}) * 100
N.B:根据K8S版本,container_cpu_usage_seconds_total
查询返回的字段可能有所不同。在某些系统上,容器的名称由container_name
字段表示,而在某些系统上则为container
。