我很难理解为什么在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使用率低于“正确”的容器(具有正确的image
和container
标签的容器),在其他情况下,它非常相似,但永远不会相同。
示例:
Server 1 image
Server 2 image
我想知道这些容器是什么,它们指的是什么。
PS.指标来自cadvisor
。
2条答案
按热度按时间vc9ivgsu1#
试试这个查询:
简而言之,CPU使用率在几个分辨率(容器、pod、QoS类)下可用,并且上面的查询有效地消除了除显式定义的容器之外的所有内容。
!="POD"
删除暂停容器,container=~".+"
表示“非空”。除“每个容器”外,没有分辨率具有此标签。mhd8tkvw2#
我猜非名称项是runc进程(pid:4249)。