eval_numeric_cmp_non_numeric_rhs

Diagnostic `nanook::eval::numeric_cmp_non_numeric_rhs`

Summary

numeric comparison requires numeric right-hand side

Help

comparing with >, <, ==, ... requires both sides to be numeric

Details

When this fires

A numeric comparison (>, <, >=, <=, ==, !=) had a non-numeric value on the right. The evaluator wants both sides to be numbers when the operator is numeric, even if the LHS came from a numeric metric.

What to check

If you meant a string equality, switch to is instead of ==.

# broken
expr = "cpu.usage > \"high\""
# fixed
expr = "cpu.usage > 90"

nanook check usually catches this at parse or type-check time. Runtime hits happen when shape only resolves after evaluation.