Each process exposes /metrics:
lattice_uplattice_dhcp_allocations_total/lattice_dhcp_naks_totallattice_dhcp_offer_latency_secondslattice_db_query_totallattice_pool_free,lattice_outbox_laglattice_dns_updates_total{result}
Logs are JSON slog: node, xid, mac, ip, subnet_id, msg_type.
API and worker /metrics are open on loopback. Scrapes from another host need Authorization: Bearer lattice_live_… (readonly is enough). dhcpd /metrics is loopback-only. Fleet exposes GET /metrics on the Fleet process (loopback open; Bearer off-loopback).
Alert on /readyz != 200, outbox lag climbing, pool free ~ 0, node heartbeat stale.
Ship logs and webhooks: Observability.