使用 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
,當在警報表示式中用作警告或暴擊值時將導致錯誤。