Documentation
¶
Overview ¶
Package health 提供组件化的健康探针能力。
服务可在 HTTP server 构建时按需引入 /healthz (liveness) 和 /readyz (readiness) 端点。 Liveness 始终返回 200(进程存活即可),Readiness 执行所有注册的 Checker。
使用示例:
h := health.NewHandler(
health.PingChecker("redis", redisClient),
health.PingChecker("db", db),
)
srv := http.NewServer(http.WithHealthCheck(h))
Index ¶
- Constants
- type Builder
- func (b *Builder) Build() *Handler
- func (b *Builder) WithChecker(checker Checker) *Builder
- func (b *Builder) WithDBChecker(name string, db *sql.DB) *Builder
- func (b *Builder) WithFuncChecker(name string, checkFunc func(context.Context) error) *Builder
- func (b *Builder) WithRedisChecker(name string, pinger Pinger) *Builder
- type Checker
- type DefaultDeps
- type Handler
- type Pinger
Constants ¶
const ( // DefaultCheckTimeout 是 readiness checker 的默认执行超时时间。 DefaultCheckTimeout = 3 * time.Second )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder 用于构建 Handler,支持链式调用注册 checker。
func (*Builder) WithChecker ¶
WithChecker 注册自定义 Checker。
func (*Builder) WithDBChecker ¶
WithDBChecker 注册 *sql.DB 健康检查(使用 PingContext)。
func (*Builder) WithFuncChecker ¶
WithFuncChecker 注册基于函数的 Checker。
type Checker ¶
type Checker interface {
// Name 返回检查项名称,用于响应体中的 key。
Name() string
// Check 执行健康检查。返回 nil 表示健康,返回 error 表示不健康。
Check(ctx context.Context) error
}
Checker 定义健康检查接口。
func PingChecker ¶
PingChecker 创建基于 Ping 方法的 Checker。 兼容 redis.Client、sql.DB 等实现了 Ping(ctx) error 的类型。
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler 管理健康探针端点。
func NewHandler ¶
NewHandler 创建健康探针 Handler。 checkers 为可选参数,用于 readiness 检查。
func NewHandlerWithDefaults ¶
func NewHandlerWithDefaults(deps DefaultDeps) *Handler
NewHandlerWithDefaults 使用默认依赖创建 Handler。 自动注册所有非 nil 的依赖项为 checker。
func (*Handler) LivenessHandler ¶
func (h *Handler) LivenessHandler() http.HandlerFunc
LivenessHandler 返回 liveness 探针的 http.HandlerFunc。 始终返回 HTTP 200,不执行任何 checker。
func (*Handler) ReadinessHandler ¶
func (h *Handler) ReadinessHandler() http.HandlerFunc
ReadinessHandler 返回 readiness 探针的 http.HandlerFunc。 执行所有注册的 checker,全部通过返回 200,任一失败返回 503。