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: 3
Each 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.yaml
Health-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.