Hyper-scalable health-checker written completely in Go
- Fully configuration driven
- Define custom health-checkers
- Supports sync and async health-checks
- Extremely lightweight and performant
Health-checks are defined using .yaml configuration files. Let's create a simple health-check that checks if google.com is down or not:
name: google-com
strategy: async
interval: 30.0
checker:
type: url
parameters:
url: https://google.com
timeout: 2.0
retryPolicy:
initialDelay: 1.0
backoffMultiplier: 2.0
maxRetries: 3Each health-check needs a unique name property and the type of health checker that'll be used.
Health-checks can be sync or async, defined by the strategy field. The periodicity of async health-checks is defined by the interval field.
Start the health-check server by passing the listen-port and the list of health-check definitions:
./alive -p 8055 google-com.yamlHealth-check results can then be accessed at:
http://localhost:8055/health
http://localhost:8055/health?full=true
Health-check strategy is defined in the definition file, but can be overridden with an extra query parameter:
http://localhost:8055/health?full=true&strategy=[default|sync|async]
If you encounter any issues or have suggestions, please file an issue along with a detailed description. Remember to apply labels for easier tracking.
We use SemVer for versioning. For the available versions, see the tags on this repository
See the list of contributors who participated in this project.