rule_unit_mismatch

Diagnostic `nanook::engine::rule_unit_mismatch`

Summary

rule `{0}` has incompatible units

Help

fix the rule expression so both sides of the comparison share a dimension

Details

When this fires

Config validation, from RulesData::typecheck in crates/nanook-engine/src/rules/data.rs, called by Engine::typecheck after units are registered. Each rule's parsed expr is checked against the metric units the loaded plugins declared via engine.docs(). The first incompatible comparison stops validation and returns this. You will hit it from nanook check before the agent ever starts collecting.

What to check

Look at the inner UnitMismatch source for the offending span inside the rule expression. See also nanook::expr::unit_mismatch.

[[rules]]
expr = "mem.used_bytes > 1GiB"  # not "> 90", that mixes bytes and raw