/health, /readyz, and /version. Orchestrators such as Kubernetes use them to decide when a service is alive, when it can receive traffic, and which build it runs. This is the standard probe contract, not a guarantee for every service. Some components (workers and sidecars) expose only a subset. The per-service coverage table below is authoritative for exceptions.
The probe endpoints
The spellings are exactly
/health and /readyz, not /healthz or /livez. All three probes sit on the main application port, before the authentication middleware. They are public probes, and they stay out of access logs and request tracing.The /readyz response body
/readyz returns a JSON document describing overall readiness and each dependency check.
Status vocabulary is a closed set:
- Overall
status:healthyorunhealthy. - Per-check
status:up,down,degraded,skipped,n/a.
/readyz returns HTTP 200 only when overall status is healthy. If any check is down or degraded, it returns HTTP 503.
Startup and shutdown behavior
The probes prevent an orchestrator from routing traffic to a service that cannot serve it.- Startup self-probe.
/readyzreturns503(“server not ready”) until the listener is up and dependencies are reachable. A load balancer therefore does not receive a starting pod prematurely, even if/healthalready answers200. - Graceful drain. On
SIGTERM, the service flips/readyzto503for a drain window (about 12 seconds) while/healthstays200. Orchestrators stop routing new traffic during the window, then the process exits once in-flight work drains. The window is tunable viaREADYZ_DRAIN_DELAY_SEC(some services useREADYZ_DRAIN_GRACE_SECONDS). - Deployment mode. The
/readyzbody reports the activeDEPLOYMENT_MODE. Insaasmode, a dependency reached without TLS fails the readiness (and boot) check. Inbyoc, TLS is a recommendation, not a requirement.
Multi-tenant readiness
When you enable multi-tenancy, the service adds an auth-gated per-tenant readiness probe:/readyz reports tenant-scoped checks as n/a and points to the per-tenant route.
Per-service coverage
Every service below exposes/health (liveness) and /readyz (readiness) on its main port. The table lists default ports, the multi-tenant probe where it applies, and the two path deviations.
Multi-tenant readyz shows
Yes where the service registers GET /readyz/tenant/{id}. The route appears when you enable multi-tenancy. A — means the service registers no dedicated per-tenant probe.Ports are compose/.env.example defaults and can be overridden per deployment. See Default network ports. Varies marks a service whose default port depends on deployment configuration.
