代码之家  ›  专栏  ›  技术社区  ›  kentor

用PromQL划分组

  •  2
  • kentor  · 技术社区  · 6 年前

    我想用CPU限制(可分配的核心数量)除以已使用的核心数量来计算实际的容器CPU使用量。因此,我得到了4个吊舱的两个不同指标:

    • 每个吊舱用芯数
    • 每个吊舱的可用芯数

    我的问题:

    我想得到每个容器的CPU使用率(使用的内核数/可用的内核数)。

    我试过的:

    这两个查询都返回我想要的结果:

    1. 每个pod当前使用的核心数:

    (我使用label_replace是因为一个度量使用 pod_name 作为度量名称和其他用途 pod )

    label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)")

    回应: https://monosnap.com/direct/6EPuLF59HBJaYsAmKG6CM0fRPyUXDk

    1. 每个吊舱的可用芯数:

    sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)

    回应: https://monosnap.com/direct/dRBfitwcxHIrTRYDmYHwV5YkomYJjH

    此查询不起作用(未返回数据点):

    label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)") / sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)
    

    我的问题是:

    如何实现一个查询,返回每个pod的CPU使用情况(使用的内核数/可用的内核数)?

    1 回复  |  直到 6 年前
        1
  •  0
  •   4b0 Agit    6 年前

    你需要使用 on() 功能也一样。所以会是这样。

    label_replace(sum(rate(container_cpu_usage_seconds_total{pod_name=~"rewe-bd-palantir-vernemq.*", container_name="vernemq"}[1m])) by (pod_name), "pod", "$1", "pod_name", "(.*)") / on(pod) sum(kube_pod_container_resource_limits_cpu_cores{pod=~"rewe-bd-palantir-vernemq.*", container="vernemq", job="kubernetes-pods"}) by (pod)
    
    推荐文章