The single biggest reason a Nagios migration stalls is "we have 400 plugins
and nobody wants to rewrite them." jaque's answer is: don't. Any executable
that speaks the Nagios exec convention runs on jaque unmodified, as
permanent supported surface with no deprecation runway. That covers vendor
monitoring plugins, in-house scripts written a decade ago, and anything a
check_command in an imported config resolves to. All of it keeps working
with no rewrite deadline attached.
1. The protocol
The convention is exit code plus stdout: exit 0/1/2/3 for
OK/WARNING/CRITICAL/UNKNOWN, with the check's text on stdout and, when the
plugin has it, |-delimited perfdata on the same line. jaque reads exactly
that, nothing more. ADR-005 fixes this as a standing commitment: it is the
one compatibility surface with no sunset date on the roadmap.
2. Where the detail lives
See Legacy exec plugins for the wire protocol in full, the perfdata format, and process-group timeout handling. WASM checks exist alongside this surface for new work worth sandboxing and shipping as one file; they do not replace it.
3. Security considerations
An exec plugin runs with the same trust boundary as any other command
named in config: jaque does not sandbox it, the way it sandboxes a WASM
check. A check_command pointed at an untrusted script is exactly as
dangerous here as it was under Nagios.