Prometheus Promql:是否可以获取查询范围内的总计数

Prometheus Promql:是否可以获取查询范围内的总计数,prometheus,promql,Prometheus,Promql,例如,我有一个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 st

例如,我有一个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”的总计数? 我尝试了一段时间的计数,它给出了总计数。如何添加筛选器,以便在value==0或1时返回计数

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

仅供参考,实际查询不是http_请求,我可以使用http_请求总数

在做了一些研究后,我找到了答案。基本上在{}内部,我们正在做带标签的检查。在{}之外,我们可以设置值的条件

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

count_over_time(http_response_ok{appname="XXX"==1}[24h:])
count_over_time(http_response_ok{appname="XXX"==0}[24h:])
要查找过去24小时内值==0的总计数,查询应如下所示:

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