A Go library for defining and monitoring service health with async dependency checks, health endpoints, and metrics.
go-sundheit is a Go library for defining and monitoring service health in applications. It allows developers to register asynchronous health checks for dependencies (like databases, APIs, or custom logic) and the service itself, providing a health endpoint to expose status and optional metrics. It solves the problem of ensuring service reliability by offering a structured way to track dependency health and operational status.
Go developers building microservices, APIs, or distributed systems who need to implement health checks for monitoring, load balancers, or orchestration tools like Kubernetes.
Developers choose go-sundheit for its simplicity, built-in check types (HTTP, DNS, ping), async execution, and extensibility via custom checks and listeners. It integrates easily with existing Go applications and provides metrics support without heavy dependencies.
A library built to provide support for defining service health for golang services. It allows you to register async health checks for your dependencies and the service itself, provides a health endpoint that exposes their status, and health metrics.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports periodic health checks with configurable initial delays and execution periods, as shown in examples where checks run every 10 seconds after a 1-second delay.
Includes ready-to-use checks for HTTP requests, DNS lookups, and ping tests, reducing boilerplate for common dependencies like database connectivity with sql.DB.
Allows implementation via the Check interface or CustomCheck struct, enabling any logic, such as the lottery check example that fails based on probability.
Provides CheckListener and HealthListener interfaces for logging, metrics, or triggering actions, demonstrated with a logging listener that tracks check events.
Offers OpenCensus integration to expose metrics like check status and execution time, with configurable classifications for startup, liveness, or custom tags.
Only integrates with OpenCensus for metrics, which may not suit teams using Prometheus, Datadog, or other observability platforms without additional adapters.
Requires custom implementation of listeners to trigger alerts or recovery actions, adding development overhead beyond core health checking functionality.
The health endpoint provides JSON output only, with no built-in UI or advanced visualization, necessitating separate tools for monitoring dashboards.
Checks must manually respect context cancellation and timeouts, as highlighted in custom check notes, which can lead to hung checks if not properly implemented.