是否可以聚合 2 个规格指标(即kube_pod_labels
和kube_pod_container_resource_requests_cpu_cores
),以便通过执行查询将两个结果元素组合起来(即所有 pod 标签作为结果元素,request_cpu_cores 作为值)?
查询 cpu 请求值如下所示sum by (namespace, pod) (kube_pod_container_resource_requests_cpu_cores{cluster="my-cluster"})
实际结果:
{namespace="my-ns",pod="my-pod"} 0.05
查询 pod 标签是kube_pod_labels{label_foo="bar"}
实际结果:
kube_pod_labels{cluster="my-cluster",label_foo="bar",label_app="my-app-label",namespace="my-ns",pod="my-pod",service="my-svc"} 1
我曾尝试使用左关节,但似乎需要按给定标签(pod、命名空间等)进行分组,如https://www.robustperception.io/left-joins-in-promql中所述。
使用multiplication
运算符*
可以获得所需的结果集,但该集仅包含by
子句中指定的标签。示例查询:
group by (namespace,pod) (kube_pod_labels{label_foo="bar",cluster="my-cluster"}) * sum by (namespace, pod) (kube_pod_container_resource_requests_cpu_cores{cluster="my-cluster"})
示例结果:
{namespace="my-ns",pod="my-pod"} 0.05
我想要获得的是一个包含所有标签的结果集,而不必按任意标签/值进行过滤
加入 2 个查询的期望结果应该是:
{cluster="my-cluster",label_foo="bar", label_app="my-app-label",namespace="my-ns",pod="my-pod",service="my-svc"} 0.05