使用 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,当在警报表达式中用作警告或暴击值时将导致错误。