Skip to content

[Feature] Report gateway readiness separately from heartbeat liveness in Admin #7718

Open

Description

@Aias00

Goal

Let Admin distinguish a recently reporting gateway from one ready to serve traffic. Current instance status handling derives ONLINE from heartbeat arrival/age. It does not report startup completion, readiness reason or draining status.

The gateway already has an opt-in WebSocket initial-sync readiness indicator. Reuse established readiness semantics instead of inventing a second contradictory health check.

Scope

  • Reuse existing status-reporting channels and define a backward-compatible, versioned optional status extension.
  • Report readiness independently of liveness, with observation time, a bounded reason code and supported capability indicators. Missing/old data means unknown, not ready.
  • Define stable deployment instance identity and per-start boot identity so reports from a prior process cannot overwrite the current observation.
  • Distinguish configuration channel connectivity from readiness and allow an explicit serving/draining state if supported by the runtime.
  • In Admin list/detail show liveness, readiness, last observation age and reason separately. Keep legacy numeric status compatible.

Acceptance criteria

  • Initializing, ready, readiness-failed and stale observations are distinguishable while heartbeat stays healthy.
  • Reconcile with Actuator and initial synchronization behavior; do not claim that initial sync completion alone proves every dependency healthy.
  • Test legacy reporters, unknown fields, incompatible report versions, restart identity, out-of-order observations and namespace isolation.
  • Test two Admin nodes and failover against a documented authoritative status view.
  • Telemetry/reporting failure does not break gateway request processing; payload size/cadence and diagnostic content are bounded.
  • Coordinate dashboard changes, schema/API compatibility and documentation.

Related: #7692/#7693/#7694/#7696/#7697 are existing status correctness fixes. #7652 adds local file mode: it should be able to report local startup readiness without falsely requiring Admin synchronization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions