Health
API: health probes
Unauthenticated process probes on the Manager HTTP server. They are not /api/v1 except the duplicate GET /api/v1/health.
GET /health/live
Purpose. Liveness: the Manager process is running and not in an updater drain.
Authentication. None.
Parameters. None.
Response (200).
{"status": "alive", "timestamp": 1710000000}timestamp is Unix seconds.
Response (503) when updater runtime mode is draining or updating:
{"status": "draining", "timestamp": 1710000000}Edition. SHARED.
Security. Safe to expose to a local load balancer. Do not treat 200 as “database healthy.”
GET /health/ready
Purpose. Readiness: listeners admitted and PostgreSQL health check passed. If cluster is enabled, cluster health is included.
Authentication. None.
Response (200) includes at least:
Scroll sideways to see the full table. Use the arrow keys when focused.
| Field | Meaning |
|---|---|
status | "ready" when no failed checks |
timestamp | Unix seconds |
database | "ok", "not_configured", "timeout", "unavailable" |
checks | string array of failed check names when not ready |
Response (503) uses the same object with status: "not_ready" and populated checks. Example failed check strings from source:
manager: listener_admission_incompletedatabase: not_configureddatabase: timeoutdatabase:plus the health-check error textcluster: timeoutwhen cluster enabled and the readiness timeout fires
Timeout is health.readiness_timeout (code default 5s when set).
Limitations. Blocking-authority readiness is also checked when the blocking pipeline is required (BlockingAuthorityReady). Exact additional JSON keys for blocking/cluster depend on that path; treat extra keys as additive.
Do not publish this as a Kubernetes product integration. The comments mention k8s probe style only.
GET /health
Purpose. Compatibility health (same handler family as historical /health).
Authentication. None.
GET /api/v1/health
Duplicate of healthCheck under the v1 prefix (v1_integration.go). Same guidance.
GET /metrics
Purpose. Prometheus scrape.
Authentication. Admin JWT/session + RoleAuth("admin") when metrics are enabled. Skipped entirely if metrics.enabled is false.
Default path. /metrics (metrics.path override).
Publication. Operator-hosted metrics. Treat scrape credentials as admin-equivalent.