【问题标题】:Promql: Is it possible to get total count in Query_RangePromql:是否可以在 Query_Range 中获得总数
【发布时间】:2020-06-18 09:10:38
【问题描述】:

例如,我有一个 prometheus 查询,它在 HTTP 状态 200 上返回“1”,在 HTTP 状态不是 200 上返回“0”。 现在,我使用 query_range api 传递时间范围(开始和结束)和步骤。

API-Endpoint: http://my-prometheus.com/api/v1/query_range
Query: http_response_ok{appname="XXX"}
Start: 2020-06-17T00:00:00
end:2020-06-17T23:59:59
step: 300000ms     (=5min)

上面的查询以“0”和“1”的形式返回我一整天每5分钟的数据。总分约 289 分。

是否可以获得该特定时间段内所有“1”和“0”的总数? 我试过 count_over_time 给出总计数。如何添加过滤器以便在 value == 0 或 1 时返回计数

count_over_time(http_response_ok{appname="XXX"}[24h])

仅供参考,实际查询不是 http_request,我不能使用 http_request_total

【问题讨论】:

    标签: prometheus promql


    【解决方案1】:

    经过一番研究,我找到了答案。基本上在 {} 内,我们正在检查黑白标签。在 {} 之外,我们可以放置值的条件。

    因此,要查找过去 24 小时内 value 为 ==1 的总计数,查询应如下所示:

    count_over_time(http_response_ok{appname="XXX"==1}[24h:])
    

    要查找过去 24 小时内值为 ==0 的总计数,查询应如下所示:

    count_over_time(http_response_ok{appname="XXX"==0}[24h:])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-16
      • 1970-01-01
      • 2012-04-22
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多