在 SeriesSet 操作中避免除以零
对于系列操作,如果右侧没有相应的时间戳/数据点,则从左侧删除事物。你可以将它与 dropbool 函数混合以避免除以零:
$five = q("sum:rate{counter,,1}:haproxy.frontend.hrsp{}{status_code=5xx}", "1h", "")
$two = q("sum:rate{counter,,1}:haproxy.frontend.hrsp{}{status_code=2xx}", "1h", "")
$two / dropbool($five, ($five > 0))
在 dropbool 之后可能会有一个空集也会出错。因此,建议将系列操作用于可视化,并且对于警报,建议在表达式中使用缩减功能。或者你可以在还原后将操作包装在 nv 函数中:nv(avg($two / dropbool($five, ($five > 0))), 0)