An extensible health check library for Go applications to monitor system dependencies and status.
dimiro1/health is a Go library that provides extensible health monitoring for Go applications. It enables developers to verify the status of their system and all its dependencies, serving as a basic integration test to quickly identify the cause of problems when a system is down.
Go developers building microservices or distributed applications who need to monitor the health of their services and external dependencies like databases, caches, and external APIs.
Developers choose this library for its simplicity, extensibility, and stable API, which allows easy creation of custom health checks and includes built-in checkers for common dependencies like URLs, MySQL, and Redis. Its hierarchical composite checking organizes status reporting clearly.
An easy to use, extensible health check library for Go applications.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The simple Checker interface allows easy creation of custom health checks for any component, as shown in the disk space checker example, enabling flexibility for unique dependencies.
Includes ready-to-use checkers for URLs, MySQL, and Redis, reducing initial setup time for standard dependencies without extra coding.
Supports composite checkers to group multiple checks hierarchically, enabling organized status reporting for complex systems, as demonstrated with the 'Big Companies' example.
The API is declared stable in the README, encouraging long-term use, and integration is straightforward with clear JSON responses and HTTP status codes.
Only provides checkers for URL, MySQL, and Redis out of the box; other common services like PostgreSQL require custom implementation, adding development overhead.
Health checks run synchronously when the HTTP endpoint is accessed, which can block responses and cause delays if checks are slow, as seen in the example where timeouts are manually set.
Lacks built-in support for retries, circuit breakers, or advanced error handling, leaving developers to manage flaky dependencies on their own.