如何忽略普罗米修斯中的空数据系列

How to ignore empty dataseries in prometheus

计算所有数据系列的最大分位数对我来说是个问题:

查询

http_response_time{job=~"^(x|y)$", quantile="0.95",...}

结果

http_response_time{job="x",...} 0.26
http_response_time{job="y",...} NaN

这是我尝试计算最大值的方式:

avg(http_response_time{job=~"^(x|y)$",...})

现在结果将是 "NaN"。如何忽略 "NaN" 结果(来自结果部分)?

更新 0

该指标是一个自制的汇总指标。

更新 1

使用 prometheus 版本 1.8。

我没有用 NaN 尝试这个,但你可以简单地用二进制 operators 按值过滤。由于 NaN 在数学上不等于 NaN 你可以试试这个技巧(因为响应时间应该总是正的):

avg(http_response_time{job=~"^(x|y)$",...} >= 0)