healthcheck

package
v1.64.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2026 License: MIT Imports: 5 Imported by: 0

README

Package healthcheck

Пакет healthcheck предоставляет инструменты для реализации и управления проверками состояния (health checks) в приложениях. Он позволяет регистрировать проверки компонентов, кэшировать результаты и предоставлять их через HTTP-эндпоинт в формате JSON.

Types

Registry

Структура Registry управляет проверками состояния и кэширует их результаты.

Methods:

NewRegistry() *Registry

Конструктор реестра проверок состояния.

(r *Registry) Register(name string, checker Checker)

Зарегистрировать компоненту проверки состояния с именем name. Такой компонентой может быть объект, реализующий интерфейс Checker, либо же функция, обернутая в тип CheckerFunc.

(r *Registry) Handler() http.Handler

HTTP-обработчик для интеграции с HTTP-сервером.

Usage

Default usage flow
package main

import (
	"context"
	"log"
	"net/http"

	"github.com/txix-open/isp-kit/dbrx"
	"github.com/txix-open/isp-kit/grmqx"
	"github.com/txix-open/isp-kit/healthcheck"
	log2 "github.com/txix-open/isp-kit/log"
)

func main() {
	logger, err := log2.New()
	if err != nil {
		log.Fatal(err)
	}
	var (
		dbCli  = dbrx.New(logger)
		rmqCli = grmqx.New(logger)
	)

	registry := healthcheck.NewRegistry()
	registry.Register("database", dbCli)
	registry.Register("mq", rmqCli)
	registry.Register("auth-service", healthcheck.CheckerFunc(func(ctx context.Context) error {
		/* health check auth service */
		return nil
	}))

	/* integration with HTTP-server */
	http.Handle("/health", registry.Handler())
}

Documentation

Index

Constants

View Source
const (
	StatusPass = "pass"
	StatusFail = "fail"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Checker

type Checker interface {
	Healthcheck(ctx context.Context) error
}

type CheckerFunc

type CheckerFunc func(ctx context.Context) error

func (CheckerFunc) Healthcheck

func (r CheckerFunc) Healthcheck(ctx context.Context) error

type Detail

type Detail struct {
	ComponentName string
	ComponentType string
	Status        string
	Output        string `json:",omitempty"`
	Time          time.Time
}

nolint:tagliatelle

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

func NewRegistry

func NewRegistry(handleTimeout time.Duration) *Registry

func (*Registry) Handler

func (r *Registry) Handler() http.Handler

func (*Registry) Register

func (r *Registry) Register(name string, checker Checker)

func (*Registry) Unregister added in v1.58.0

func (r *Registry) Unregister(name string)

type Result

type Result struct {
	Status  string
	Details map[string][]Detail
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL