Health checks that tell the truth
A process can be running while the service is unusable. Good checks follow the same path a real request follows and verify a meaningful response.
Layer the checks
Use a cheap liveness check for process supervision, a dependency-aware readiness check for routing, and a small end-to-end probe for the user experience.
Make failure actionable
A health signal should point toward the failed layer without exposing secrets or producing a new source of load.