24 lines
843 B
Go
24 lines
843 B
Go
|
|
// Package health provides a concurrent health check HTTP handler.
|
||
|
|
//
|
||
|
|
// The handler runs all registered checks in parallel, collects results within
|
||
|
|
// a configurable timeout, and returns a structured JSON response. It maps
|
||
|
|
// directly onto Kubernetes liveness and readiness probes.
|
||
|
|
//
|
||
|
|
// Components register themselves by implementing
|
||
|
|
// [observability.Checkable] from einherjar/contracts — no adapter needed.
|
||
|
|
//
|
||
|
|
// - [observability.LevelCritical]: if DOWN, overall status is DOWN (503)
|
||
|
|
// - [observability.LevelDegraded]: if DOWN, overall status is DEGRADED (200)
|
||
|
|
//
|
||
|
|
// # Example
|
||
|
|
//
|
||
|
|
// srv.Get("/health", health.NewHandler(logger, db, cache, storage))
|
||
|
|
//
|
||
|
|
// Or with custom timeout:
|
||
|
|
//
|
||
|
|
// srv.Get("/health", health.NewHandlerWithConfig(logger,
|
||
|
|
// health.Config{CheckTimeout: 3 * time.Second},
|
||
|
|
// db, cache,
|
||
|
|
// ))
|
||
|
|
package health
|