Help us shape the future of Go! Take the 2026 Go Developer Survey

hcheck

package module
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Mar 31, 2020 License: MIT Imports: 1 Imported by: 0

README

hcheck

hcheck is a library for checking the health of components.

go doc

$ go doc -all

package hcheck // import "github.com/cloudfstrife/hcheck"


FUNCTIONS

func Check() map[string]Status
    Check do all check and return check result

func Register(name string, checker Checker)
    Register regist a checker

func Unregister(name string)
    Unregister regist a checker


TYPES

type Checker interface {
        //Check function, do something inspect
        Check() Status
}
    Checker wrap inspect method

type GenChecker struct{}
    GenChecker generic checker

func (gen *GenChecker) Check() Status
    Check GenChecker return true and string "OK" as Status result

type Status struct {
        //Pass flag
        Pass bool
        //Msg check result message
        Msg string
}
    Status wrap check result

usage

command

mkdir testing
cd testing
go mod init app/testing
go get -u github.com/cloudfstrife/hcheck
mkdir -p checker
touch main.go
touch checker/mq.go
touch checker/db.go

main.go

package main

import (
	"fmt"

	_ "app/testing/checker"

	"github.com/cloudfstrife/hcheck"
)

func main() {
	cr := hcheck.Check()
	for k, v := range cr {
		fmt.Printf("%s\t%t\t%s\n", k, v.Pass, v.Msg)
	}
}

checker/mq.go

package checker

import (
	"github.com/cloudfstrife/hcheck"
)

//MQChecker message queue health checker
type MQChecker struct {
	server   string
	port     int
	username string
	password string
}

//Check message queue connectable
func (dc *MQChecker) Check() hcheck.Status {
	//do  message queue connection check
	return hcheck.Status{
		Pass: false,
		Msg:  "MQ Connection lost",
	}
}

func init() {
	hcheck.Register("MQ", &MQChecker{})
}

checker/db.go

package checker

import "github.com/cloudfstrife/hcheck"

//DBChecker database health checker
type DBChecker struct {
	server   string
	port     int
	username string
	password string
}

//Check the database connectable
func (dc *DBChecker) Check() hcheck.Status {
	//do database connection check
	return hcheck.Status{
		Pass: true,
		Msg:  "MySQL Processlist Count : 100",
	}
}

func init() {
	hcheck.Register("DB", &DBChecker{})
}

build & run

$ go build
$ ./testing.exe
MQ      false   MQ Connection lost
Gen     true    OK
DB      true    MySQL Processlist Count : 100

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Check

func Check() map[string]Status

Check do all check and return check result

func Register

func Register(name string, checker Checker)

Register regist a checker

func Unregister

func Unregister(name string)

Unregister regist a checker

Types

type Checker

type Checker interface {
	//Check function, do something inspect
	Check() Status
}

Checker wrap inspect method

type GenChecker

type GenChecker struct{}

GenChecker generic checker

func (*GenChecker) Check

func (gen *GenChecker) Check() Status

Check GenChecker return true and string "OK" as Status result

type Status

type Status struct {
	//Pass flag
	Pass bool
	//Msg check result message
	Msg string
}

Status wrap check result

Jump to

Keyboard shortcuts

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