Kubernetes 使用PromQL划分组

Kubernetes 使用PromQL划分组,kubernetes,prometheus,promql,Kubernetes,Prometheus,Promql,我想通过将已用内核数除以CPU限制(可分配内核数)来计算实际的容器CPU使用量。因此,我得到了4个吊舱的两个不同指标: 每个吊舱使用的芯数 每个吊舱的可用芯数 我的问题: 我想获得每个容器的CPU使用率(已用内核数/可用内核数) 我的尝试: 这两个查询中的每一个都返回我想要的结果: 每个pod当前使用的芯数: (我使用label_replace是因为一个度量使用pod_name作为度量名称,而另一个使用pod) label_替换(总和(比率(容器cpu使用率)秒数{pod_name=~“re

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

  • 每个吊舱使用的芯数
  • 每个吊舱的可用芯数
我的问题:

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

我的尝试:

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

  • 每个pod当前使用的芯数:
  • (我使用label_replace是因为一个度量使用
    pod_name
    作为度量名称,而另一个使用
    pod

    label_替换(总和(比率(容器cpu使用率)秒数{pod_name=~“rewe bd palantir vernemq.*”,容器名称=“vernemq”}[1m])为(pod_name),“pod”,“$1”,“pod_name”,“(*”)
    

    答复:

  • 每个吊舱的可用芯数:
  • sum(kube_pod_container_resource_limits_cpu_cores{pod=~“rewe bd palantir vernemq.*”,container=“vernemq”,job=“kubernetes pods”})通过(pod)
    

    答复:

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

    我的问题:


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

    您还需要使用
    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)
    

    我找不到有关此函数的任何文档。有人有链接吗?
    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)