What Is a Health Check? Liveness, Readiness, and Monitoring

By WatchCron Team

A health check is a request sent to a service to confirm it's running and responding correctly. In its simplest form, it's an HTTP endpoint (often /health or /healthz) that returns a 200 status code when everything is operational and an error code when something is wrong. Load balancers, container orchestrators like Kubernetes, and monitoring tools all use health checks to decide whether a service instance should receive traffic.

Health checks split into two categories. A liveness check answers "is the process running?" — it catches crashed or hung services. A readiness check answers "can this instance handle requests right now?" — it catches services that are technically alive but still starting up, waiting on a database connection, or otherwise unable to serve traffic. Kubernetes uses both: a failed liveness check restarts the pod, a failed readiness check removes it from the load balancer without killing it.

Health checks vs. heartbeats

The terms overlap but the direction is different. A health check is a pull — an external system asks the service "are you OK?" and reads the response. A heartbeat (used in cron job monitoring) is a push — the job itself reports "I just ran" by pinging a monitoring endpoint. Health checks work well for long-running services that are always available to be polled. Heartbeats work better for scheduled tasks that run briefly, do their work, and exit.

Health checks and monitoring

External uptime monitoring is essentially a health check run from outside your infrastructure on a schedule. The monitor sends an HTTP request to your endpoint, checks for the expected status code, and measures the response time. If the check fails — timeout, wrong status, or no response — alerts fire. Running these checks from multiple regions catches issues that a single internal health check would miss: DNS problems, CDN failures, or regional network outages.

Related terms: uptime, cron job, SLA, observability

WatchCron runs HTTP health checks against your endpoints and alerts you when they fail. Cron job monitoring uses heartbeats for scheduled tasks. Free plan available.

Start Free

Frequently Asked Questions

A health check is a request sent to a service to confirm it is running and responding correctly. Typically an HTTP endpoint like /health that returns a 200 status code when operational. Load balancers, Kubernetes, and monitoring tools use health checks to decide whether a service should receive traffic.
A liveness check confirms the process is running — a failure triggers a restart. A readiness check confirms the instance can handle requests — a failure removes it from the load balancer without killing it. Kubernetes uses both to manage pod lifecycle.
A health check is a pull: an external system asks the service if it is OK. A heartbeat is a push: the job itself reports that it just ran by pinging a monitoring endpoint. Health checks suit long-running services; heartbeats suit scheduled tasks that run and exit.

Start monitoring in under 2 minutes

Free plan includes 20 checks. No credit card required.

See Plans & Pricing