Where does the convention of using /healthz for application health checks come from?
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
The convention of using /healthz for application health checks has become a common best practice in modern software architecture, particularly with the rise of microservices and cloud-native applications. This approach plays a vital role in infrastructure health monitoring, ensuring that applications are running as expected and capable of handling requests. Let's delve into its origins, technical implications, and practical examples to understand it better.
Origins of /healthz
The designation of /healthz as a health check endpoint has its roots in the 2014 era of containerized infrastructure development. As companies like Google were formalizing their strategies around Kubernetes and container orchestration, they required a standardized way to implement health checks across services. Google's engineering culture, which often utilized the z suffix for internal or engineering-only endpoints, introduced the /healthz convention in Kubernetes. The presence of the /healthz endpoint made it clear that this path was meant for machine consumption rather than human interaction.
Why Not Just /health?
Before /healthz caught on, /health was commonly used. However, adding a z was a specific choice to avoid accidental user access and emphasize that the endpoint is primarily meant for programmatic access in automated health monitoring setups.
Technical Explanation
What is a Health Check?
A health check is a mechanism that enables a system to assess the status of an application, service, or component in real-time. It typically returns basic information regarding the operational state of the application to indicate whether it's healthy or if there's a fault.
Types of Health Checks
- Readiness Checks: Determine if an application is ready to handle incoming traffic.
- Liveness Checks: Assess if an application is alive and running without internal errors.
- Startup Checks: Monitor whether an application has successfully started.
When properly implemented, these checks help detect problems early, facilitate load balancing, and maintain high availability.
Implementation of /healthz
Here's an example of implementing a /healthz endpoint in a simple Node.js Express application:
In this example, the /healthz endpoint simply returns a JSON response indicating the system is "Healthy."
HTTP Status Code
Health checks typically return status codes to indicate the health of an application:
200 OK: The application is healthy.500 Internal Server Error: The application is not healthy.
Advantages of Using /healthz
- Consistency: By adhering to a convention like
/healthz, organizations can achieve a uniform approach across multiple services, simplifying management and monitoring. - Automation: Tools like Kubernetes, along with load balancers and monitoring tools, can automatically recognize
/healthzendpoints and use them to make decisions about routing and scaling. - Isolation: By denoting an engineering-centric path, operations teams can separate health-related traffic from normal user-facing endpoints, reducing resource contention.
- Less Collision: The unique
zsuffix helps avoid conflicts with user-defined routes that might inadvertently use/health.
Use Cases and Applications
- Microservices: In a microservices architecture, each service might expose a
/healthzendpoint for centralized monitoring. - Container Orchestration: Systems like Kubernetes use health check endpoints to automatically manage container lifecycle events, such as restarts or scaling operations.
- Cloud Providers: Health checks are integral to cloud-based load balancers (e.g., AWS ALB) that use these endpoints to determine whether services can handle requests.
Key Considerations
| Aspect | Description |
| Standardization | Using /healthz enhances uniformity and adoption. |
| Implementation Complexity | Varies depending on the microservice's underlying logic. |
| Integration | Easily integrated with orchestration and monitoring tools. |
| Security | Ensure proper access controls to prevent unauthorized checks. |
Security Considerations
While the /healthz endpoint is valuable, it comes with security considerations. Exposure to the public can be a risk, as it may provide attackers with details about the application's operational state. Best practices include:
- Restricting access to internal networks or authorized tools.
- Implementing authentication mechanisms if exposed beyond internal boundaries.
- Logging access attempts for security audits and anomaly detection.
In conclusion, the /healthz convention reflects a significant step towards consistent, automated, and reliable application monitoring. Despite being a simple convention, its structured approach fosters better practices in observability and operational resilience in complex, distributed environments.

