如何忽略普罗米修斯中的空数据系列
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)
计算所有数据系列的最大分位数对我来说是个问题:
查询
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)