Convergence/staleness alerting endpoint #19

Open
opened 2026-07-26 17:09:03 +10:00 by benvin · 0 comments
Owner

Problem. Fail-open agents mean a device cut off from the API enforces
stale policy indefinitely — by design — and generation reporting is the only
signal. Today that signal has no consumer: nothing distinguishes "fleet
converged" from "three devices have been 40 generations behind for a week".

Proposal. A /fleet/convergence endpoint (and/or Prometheus metrics)
exposing per-device: last check-in time, applied generation, generations
behind head, and last status. Plus configurable thresholds
(max_generations_behind, max_checkin_age) that flip devices into an
alerting state the endpoint surfaces. This turns the design's availability
choice into an operable one.

**Problem.** Fail-open agents mean a device cut off from the API enforces stale policy indefinitely — by design — and generation reporting is the *only* signal. Today that signal has no consumer: nothing distinguishes "fleet converged" from "three devices have been 40 generations behind for a week". **Proposal.** A `/fleet/convergence` endpoint (and/or Prometheus metrics) exposing per-device: last check-in time, applied generation, generations behind head, and last status. Plus configurable thresholds (`max_generations_behind`, `max_checkin_age`) that flip devices into an `alerting` state the endpoint surfaces. This turns the design's availability choice into an operable one.
Sign in to join this conversation.