【问题标题】:Multiple query in prometheus throwing No datapoints found errorprometheus 中的多个查询抛出 No datapoints found 错误
【发布时间】:2019-05-13 10:15:21
【问题描述】:

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

查询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

欧瑞2:

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 prometheus-alertmanager prometheus-operator


    【解决方案1】:

    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"})
    

    【讨论】:

    • 工作得很好,只需要删除 avg 周围的括号,这是更新后的(sum by(container_label_io_kubernetes_pod_name) (rate (container_cpu_usage_seconds_total{container_label_io_kubernetes_container_name=~"template-api"}[1m])))/ignoring(container_label_io_kubernetes_pod_name) group_left avg(kube_pod_container_resource_requests_cpu_cores{container="template-api"})
    猜你喜欢
    • 2017-01-11
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2020-01-18
    • 1970-01-01
    • 2022-06-16
    相关资源
    最近更新 更多