https://github.com/efureev/health-checker
Health checkers
https://github.com/efureev/health-checker
Last synced: about 2 months ago
JSON representation
Health checkers
- Host: GitHub
- URL: https://github.com/efureev/health-checker
- Owner: efureev
- License: mit
- Created: 2022-05-26T12:13:09.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-06-20T11:28:51.000Z (almost 3 years ago)
- Last Synced: 2025-01-15T09:02:37.949Z (3 months ago)
- Language: Go
- Size: 154 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Health checker
[](https://goreportcard.com/report/github.com/efureev/health-checker)


## Installation
```shell
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:
```go
ch := checker.NewChecker().
SetLogger(logger.NewConsoleLogger()).
```Add a command to healthcheck:
```go
package mainimport (
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`](https://github.com/efureev/go-commander):
```go
package mainimport (
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()
})
}
```