普罗米修斯中的多个查询抛出未找到数据点错误

Multiple query in prometheus throwing No datapoints found error

同时 运行 两个查询时遇到错误。

查询 1:

sum by(container_label_io_kubernetes_pod_name) (rate (container_cpu_usage_seconds_total{container_label_io_kubernetes_container_name=~"demo-api"}[1m]))

O/P:

{container_label_io_kubernetes_pod_name="demo-api-demo-api-7c8d7c75d-sfrsg"}    0.15590349995998623
{container_label_io_kubernetes_pod_name="demo-api-demo-api-7c8d7c75d-nnxqz"}    0.22167272938000676
{container_label_io_kubernetes_pod_name="demo-api-demo-api-7c8d7c75d-zbcdk"}    0.14510123627695987

Ouery2:

avg(kube_pod_container_resource_requests_cpu_cores{container="demo-api"})

O/P:

Element     Value
{}  1

最终查询(q1/q2):

(sum by(container_label_io_kubernetes_pod_name) (rate (container_cpu_usage_seconds_total{container_label_io_kubernetes_container_name=~"demo-api"}[1m])))
/(avg(kube_pod_container_resource_requests_cpu_cores{container="demo-api"}))

未找到数据点。

Prometheus documentation here 描述了矢量匹配的工作原理。 为了您的操作成功,您需要在除法期间忽略 container_label_io_kubernetes_pod_name 标签:

(sum by(container_label_io_kubernetes_pod_name) (rate (container_cpu_usage_seconds_total{container_label_io_kubernetes_container_name=~"demo-api"}[1m])))
/
ignoring(container_label_io_kubernetes_pod_name) group_left 
avg(kube_pod_container_resource_requests_cpu_cores{container="demo-api"})