【问题标题】:Prometheus different results, same podPrometheus 不同的结果,相同的 pod
【发布时间】:2021-12-30 10:32:23
【问题描述】:

我很难理解为什么我在 Prometheus/Grafana 中为同一个 pod 获得多个结果。

我正在尝试通过 rate(container_cpu_usage_seconds_total{namespace=~".+-test", pod=~"my-server-.+", image!~"|.*pause.*", container!="POD"}[5m]) 获取 cpu 使用率。

container 标签排除了带有POD 字符串的结果。我发现那些指的是 pause 容器,它在容器启动之前保存命名空间和其他东西。

但是,我在 image 标签中获得了暂停容器。所以我把他们排除在那个标签之外。

然后我发现一些没有image 标签的容器,我在image 标签中插入或(|)排除了它们。

在某些情况下,没有image 标签的容器的 CPU 使用率低于“正确”容器之一(带有正确 imagecontainer 标签的容器),而在其他情况下,它是非常相似,但绝不相同。

例子:

Server 1 image

Server 2 image

我想了解这些容器是什么以及它们指的是什么。

PS。指标来自cadvisor

【问题讨论】:

  • 试试这个查询:rate(container_cpu_usage_seconds_total{namespace=~".+-test", pod=~"my-server-.+", container!="POD", container=~".+"}[5m])。 Tl;dr:CPU 使用率可用于多种分辨率(容器、pod、QoS 类),并且此查询有效地消除了除您明确定义的容器之外的所有内容。 !="POD" 删除暂停容器,container=~".+" 表示“非空”。除了每个容器之外,没有任何分辨率具有此标签。
  • 谢谢。是的,您的查询按预期工作。 QoS 等级是什么意思?
  • 其中有three,这只是cgroups树中的另一个级别。

标签: kubernetes containers prometheus promql cadvisor


【解决方案1】:

试试这个查询:

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

简而言之,CPU 使用率可用于多种分辨率(容器、pod、QoS class),并且上述查询有效地消除了除您明确定义的容器之外的所有内容。 !="POD" 删除暂停容器,container=~".+" 表示“非空”。除了“per container”之外,没有任何分辨率有这个标签。

【讨论】:

    猜你喜欢
    • 2018-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多