checker

package module
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2022 License: MIT Imports: 3 Imported by: 0

README

Health checker

Go Report Card GitHub go.mod Go version GitHub release (latest by date) GitHub

Installation

go get github.com/efureev/health-checker

Description

Health checker allows you check out various services and your custom processes for your custom checks (i.e. availability).

Usage

Create checker:

ch := checker.NewChecker().
SetLogger(logger.NewConsoleLogger()).

Add a command to healthcheck:

package main

import (
	checker "github.com/efureev/health-checker"
	"github.com/efureev/health-checker/checkers"
)

func main() {
	ch := checker.NewChecker().
		// SetLogger(logger.NewConsoleLogger()).
		AddCmd(
			checker.NewCmd(`Node`).SetCheckFn(checkers.CheckingNodeFn(`16`)),
			checker.NewCmd(`Redis`).SetCheckFn(
				checkers.CheckingRedisFn(checkers.RedisConfig{
					Host:     `localhost`,
					Password: ``,
					DB:       0,
					Port:     6379,
				}),
			),
		)

	// aSynchro
	err := ch.RunParallel()

	// synchro
	err := ch.Run()
}

Example

With Commander:

package main

import (
	commander "github.com/efureev/go-commander"
	checker "github.com/efureev/health-checker"
	"github.com/efureev/health-checker/checkers"
)

func main() {
	cnf := struct{}{}
	cmdr := commander.NewCommander().
		Add(
			cmdChecking(cnf),
			// ... 
		)

	cmdr.Run()

	if cmdr.HasError() {
		utils.Error(cmdr.commander.Error(), "\nErrors:\n")
	}
}

func cmdChecking(cnf any) *commander.Command {
	return commander.NewCommand(`checking`).
		OnRun(func(cmd *commander.Command) error {
			ch := checker.NewChecker().
				SetLogger(logger.NewConsoleLogger()).
				AddCmd(
					checkingPostgresDb(cnf.Checker.Database),
					checkingElasticsearch(cnf.Checker.Elasticsearch),
					checkingRedis(cnf.Checker.Redis),
					checkingRabbitMQ(cnf.Checker.Rabbit),
					checkingCaptcha(cnf.Checker.Captcha),
					checkingTargetRepos(cnf.Targets),
					checkingHDD(cnf.Folder),
					checkingNode(),
				)
			return ch.RunParallel()
		})
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Checker

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

func NewChecker

func NewChecker() *Checker

func (*Checker) AddCmd

func (c *Checker) AddCmd(cmd ...ICmd) *Checker

func (*Checker) Run

func (c *Checker) Run() error

func (*Checker) RunParallel

func (c *Checker) RunParallel() error

func (*Checker) SetLogger

func (c *Checker) SetLogger(l ILogger) *Checker

type Cmd

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

func NewCmd

func NewCmd(name string) *Cmd

func (Cmd) Enable

func (cmd Cmd) Enable() bool

func (Cmd) Name

func (cmd Cmd) Name() string

func (Cmd) Result

func (cmd Cmd) Result() *Result

func (*Cmd) Run

func (cmd *Cmd) Run()

func (*Cmd) SetCheckFn

func (cmd *Cmd) SetCheckFn(fn CmdFn) *Cmd

func (*Cmd) SetEnable

func (cmd *Cmd) SetEnable(enable bool) *Cmd

func (*Cmd) SetLogger

func (cmd *Cmd) SetLogger(l ILogger) *Cmd

type CmdFn

type CmdFn func(result *Result, log ILogger)

type ICmd

type ICmd interface {
	Enable() bool
	Name() string
	Run()
	Result() *Result
	SetLogger(l ILogger) *Cmd
}

type ILogger

type ILogger interface {
	Info(format string, args ...interface{})
	Warn(format string, args ...interface{})
	Success(format string, args ...interface{})
	Error(format string, args ...interface{})
	Log(format string, args ...interface{})
}

type Info

type Info struct {
	Version string
	Text    string
}

func (Info) String

func (i Info) String() string

type Result

type Result struct {
	Success string

	Status Status
	Info   Info
	// contains filtered or unexported fields
}

func (*Result) AddError

func (r *Result) AddError(err error) *Result

func (*Result) AddErrorFromStr

func (r *Result) AddErrorFromStr(err string) *Result

func (*Result) AddStep

func (r *Result) AddStep(step string) *resultStep

func (Result) Error

func (r Result) Error() error

func (Result) HasError

func (r Result) HasError() bool

func (*Result) StatusDone

func (r *Result) StatusDone()

func (*Result) StatusFailed

func (r *Result) StatusFailed()

func (*Result) StatusPending

func (r *Result) StatusPending()

type Status

type Status int
const (
	StatusUnknown Status = iota
	StatusPending
	StatusDone
	StatusFailed
)

func (Status) String

func (s Status) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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