Quickstart
The fastest way to know if jaque is worth your time is to run it against your own machine and watch it decide, on its own, whether anything is wrong.
Get jaque
Section titled “Get jaque”During the pre-alpha there is no public binary and no public source: access to the source is granted by hand.
For readers with access, build it from the repo root:
go build ./cmd/jaquejust build does the same. Building requires Go 1.26.4, the toolchain
version pinned in go.mod.
Write a config
Section titled “Write a config”Nagios configs, once you’ve written a handful, all look the same: a host,
one address, one check. jaque’s CUE version is exactly that shape,
minus the ceremony. Save this as jaque.cue:
hosts: gw: { address: "192.168.1.1" check: {type: "icmp", host: address}}That’s a complete, loadable config: one host named gw, checked by ICMP
ping every 60 seconds (the schema default), three attempts before a
failure goes hard. Adjust the address to something on your own network, or
point it at 127.0.0.1 to try it against the machine you’re on.
ICMP needs one sysctl
Section titled “ICMP needs one sysctl”The icmp check uses unprivileged datagram sockets; on most Linux
distributions you need to run sudo sysctl -w net.ipv4.ping_group_range="0 2147483647" (or the narrower group range you
prefer) or the first example below returns UNKNOWN with permission denied.
Run it
Section titled “Run it”jaque -config jaque.cueYou’ll see one structured log line per state transition. Nothing is notified yet unless the config wires up contacts — a fresh run just shows the engine deciding OK/WARNING/CRITICAL for each object as checks come in.
What you get for free
Section titled “What you get for free”With the default -listen 127.0.0.1:8080:
- The dashboard at
http://127.0.0.1:8080/— a small SPA showing every host and service, its current state, and quick actions (acknowledge, downtime). See Dashboard. /metricson the same port — Prometheus-format metrics about the engine itself (event log lag, scheduler drift, check durations). See Metrics./status.json— a machine-readable snapshot, mostly useful for liveness probes.
Set -listen "" to turn all three off.
From here, CUE in practice walks through adding services, sharing templates across hosts, and wiring up notifications — and Concepts explains the state machine underneath what you just watched run.