使用 NumberSet 操作避免除以零
为了避免使用 numberSet(除了像 avg()
之后得到的那样)除以零,你可以使逻辑短路:
$five = min(q("sum:rate{counter,,1}:haproxy.frontend.hrsp{}{status_code=5xx}", "1h", ""))
$two = avg(q("sum:rate{counter,,1}:haproxy.frontend.hrsp{}{status_code=2xx}", "1h", ""))
$five && $two / $five
如果以上只是 $two / $five
然后当$ 5 为零时,结果将是+Inf
,当在警报表达式中用作警告或暴击值时将导致错误。