kubernetes Prometheus不同的结果,相同的吊舱

1tuwyuhd  于 2023-05-22  发布在  Kubernetes
关注(0)|答案(2)|浏览(232)

我很难理解为什么在Prometheus/Grafana中同一个pod会得到多个结果。
我正在尝试通过rate(container_cpu_usage_seconds_total{namespace=~".+-test", pod=~"my-server-.+", image!~"|.*pause.*", container!="POD"}[5m])获取cpu使用率。
container标签排除了带有POD字符串的结果。我发现那些是指 pause container,它在容器启动之前保存名称空间和其他东西。
但是我在image标签中得到了暂停容器。所以我把他们排除在这个标签之外。
然后我发现了一些没有image标签的容器,我排除了它们,在image标签中插入了一个or(|)。
在某些情况下,没有image标签的容器的cpu使用率低于“正确”的容器(具有正确的imagecontainer标签的容器),在其他情况下,它非常相似,但永远不会相同。
示例:
Server 1 image
Server 2 image
我想知道这些容器是什么,它们指的是什么。
PS.指标来自cadvisor

vc9ivgsu

vc9ivgsu1#

试试这个查询:

rate(container_cpu_usage_seconds_total{container!="POD", container=~".+"}[5m])

简而言之,CPU使用率在几个分辨率(容器、pod、QoS类)下可用,并且上面的查询有效地消除了除显式定义的容器之外的所有内容。!="POD"删除暂停容器,container=~".+"表示“非空”。除“每个容器”外,没有分辨率具有此标签。

mhd8tkvw

mhd8tkvw2#

[root@xy-5-server19 ~]# ctr -n k8s.io container ls > /tmp/container.list && ctr -n k8s.io task ls > /tmp/task.list && awk 'FNR==NR {dict[$1]=$0;next}{if($1 in dict){$1=dict[$1]" "$2" "$3}print $1}' /tmp/task.list /tmp/container.list|grep 0743c2cea08edfc98c988fac5fa252c0241d3f4cd8cbe152a3d624bd78ccea57
0743c2cea08edfc98c988fac5fa252c0241d3f4cd8cbe152a3d624bd78ccea57    5186     RUNNING docker.io/deepflowce/clickhouse-server:22.8.6.71 io.containerd.runc.v2
[root@xy-5-server19 ~]# ps -ef|grep 5186
101       5186  4249 19 3月31 ?       9-02:15:52 /usr/bin/clickhouse-server --config-file=/etc/clickhouse-server/config.xml
root     24890 26221  0 17:52 pts/0    00:00:00 grep --color=auto 5186
[root@xy-5-server19 ~]# ps -ef|grep 4249
root      4249     1  0 3月31 ?       01:07:23 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id f0120b526865c58dbe7bd33f612b7509a50366174720989562521cc8cea47805 -address /run/containerd/containerd.sock
65535     4290  4249  0 3月31 ?       00:00:00 /pause
101       5186  4249 19 3月31 ?       9-02:15:55 /usr/bin/clickhouse-server --config-file=/etc/clickhouse-server/config.xml
root     25548 26221  0 17:52 pts/0    00:00:00 grep --color=auto 4249
[root@xy-5-server19 ~]# systemctl status containerd|grep f0120b526865c58dbe7bd33f612b7509a50366174720989562521cc8cea47805
           ├─ 4249 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id f0120b526865c58dbe7bd33f612b7509a50366174720989562521cc8cea47805 -address /run/containerd/containerd.sock

我猜非名称项是runc进程(pid:4249)。

相关问题