checkId: check.observability.healthchecks plugin: stellaops.doctor.observability severity: warn tags: [observability, healthchecks, readiness, liveness]

Health Check Endpoints

What It Checks

Evaluates the configured health, readiness, and liveness paths and optionally probes http://localhost:<port><path> when a health-check port is configured.

The check warns when endpoints are unreachable, when timeouts are outside the 1s to 60s range, or when readiness and liveness collapse onto the same path.

Why It Matters

Broken health probes turn into bad restart loops, failed rolling upgrades, and misleading orchestration signals.

Common Causes

How to Fix

Docker Compose

docker compose -f devops/compose/docker-compose.stella-ops.yml exec doctor-web curl -fsS http://localhost:8080/health
docker compose -f devops/compose/docker-compose.stella-ops.yml exec doctor-web curl -fsS http://localhost:8080/health/ready
docker compose -f devops/compose/docker-compose.stella-ops.yml exec doctor-web curl -fsS http://localhost:8080/health/live

Set explicit paths and a reasonable timeout:

HealthChecks__Path: /health
HealthChecks__ReadinessPath: /health/ready
HealthChecks__LivenessPath: /health/live
HealthChecks__Timeout: 30

Bare Metal / systemd

Verify reverse proxies and firewalls do not block the health port.

Kubernetes / Helm

Point readiness and liveness probes at separate endpoints whenever startup and steady-state behavior differ.

Verification

stella doctor run --check check.observability.healthchecks