health

package module
v0.0.0-...-fb63ead Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2024 License: MIT Imports: 1 Imported by: 1

README

Go Health Check

go-test go-report


An easy-to-use service status monitoring library in Golang


Installation

go get github.com/MR5356/health

Example

URL Check
package main

import (
	"fmt"
	"github.com/MR5356/health/url"
)

func main() {
	checker := url.NewChecker("https://toodo.fun")

	result := checker.Check()
	fmt.Printf("status: %s\nrtt: %dms\nresult: %+v\n", result.Status, result.GetRTT(), result.GetResult())
}

Output:

status: up
rtt: 160ms
result: &{Code:200 Error:<nil>}
Host Check
package main

import (
	"fmt"
	"github.com/MR5356/health/host"
)

func main() {
	// use ping checker
	pingChecker := host.NewPingChecker("baidu.com")
	result := pingChecker.Check()
	fmt.Printf("status: %s\nrtt: %dms\nresult: %+v\n", result.Status, result.GetRTT(), result.GetResult())

	// use ssh checker
	sshChecker := host.NewSSHChecker(&host.HostInfo{
		Host:     "host or ip",
		Port:     22,
		Username: "username",
		Password: "password",
	})
	result = sshChecker.Check()
	fmt.Printf("status: %s\nrtt: %dms\nresult: %+v\n", result.Status, result.GetRTT(), result.GetResult())
}

Output:

status: up
rtt: 9ms
result: &{Addr:39.156.66.10 Error:<nil>}
status: up
rtt: 295ms
result: <nil>
Database Check
package main

import (
	"fmt"
	"github.com/MR5356/health/database"
)

func main() {
	checker := database.NewChecker(database.DBDriverSQLite, "file::memory:?cache=shared")
	result := checker.Check()
	fmt.Printf("status: %s\nrtt: %dms\nresult: %+v\n", result.Status, result.GetRTT(), result.GetResult())
}

Output:

status: up
rtt: 1ms
result: &{Version:3.45.1 Error:<nil>}

Testing

go test -v ./... -coverprofile=coverage.out
go tool cover -func=coverage.out 

Implementing custom checker

type Checker interface {
	Check() Health
}

Support

If you have questions, reach out to us one way or another.

Documentation

Index

Constants

View Source
const (
	StatusUp      = Status("up")
	StatusDown    = Status("down")
	StatusUnknown = Status("unknown")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Checker

type Checker interface {
	Check() *Health
}

type Health

type Health struct {
	Status Status `json:"status"`
	RTT    int64  `json:"rtt"`
	Result any    `json:"result"`
}

func NewHealth

func NewHealth() *Health

func (*Health) Down

func (h *Health) Down() *Health

func (*Health) GetRTT

func (h *Health) GetRTT() int64

func (*Health) GetResult

func (h *Health) GetResult() any

func (*Health) HasRTT

func (h *Health) HasRTT() bool

func (*Health) HasResult

func (h *Health) HasResult() bool

func (*Health) IsDown

func (h *Health) IsDown() bool

func (*Health) IsUnknown

func (h *Health) IsUnknown() bool

func (*Health) IsUp

func (h *Health) IsUp() bool

func (*Health) SetRTT

func (h *Health) SetRTT(rtt int64) *Health

func (*Health) SetResult

func (h *Health) SetResult(result any) *Health

func (*Health) Unknown

func (h *Health) Unknown() *Health

func (*Health) Up

func (h *Health) Up() *Health

type Status

type Status string

Directories

Path Synopsis
example
database command
host command
url command

Jump to

Keyboard shortcuts

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