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.
Scrape from a private network — /metrics is unauthenticated. api :8080, each dhcpd HTTP port, worker :8081 in compose. Alert on /readyz != 200, outbox lag climbing, pool free ~ 0, node heartbeat stale.
Ship logs and webhooks: Observability.