Files
git.stella-ops.org/docs/doctor/articles/observability/observability-healthchecks.md
2026-03-31 23:26:24 +03:00

2.0 KiB

checkId, plugin, severity, tags
checkId plugin severity tags
check.observability.healthchecks stellaops.doctor.observability warn
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

  • The service exposes /health but not /health/ready or /health/live
  • Health-check ports differ from the actual bound HTTP port
  • Probe timeout values were copied from another service without validation

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 --check check.observability.healthchecks
  • check.core.services.health - aggregates the underlying ASP.NET health checks when available
  • check.observability.metrics - shared listener misconfiguration can break both endpoints