Health Checks API
#Introduction The Health Checks API standardizes the way services and applications expose their status in a distributed application. We use this API to monitor individual instances in microservices and whole applications. The API allows each microservice or application to describe itself, its dependencies and connections in a distributed application graph.
As distributed applications grow, it becomes more and more complicated to understand and debug failures in the application. The Health Checks API helps to solve this by giving you the power to standardize your status checking regardless of the language and tools you use.
We use API Blueprint to describe the Health Checks API. Read the documentation here
Below are implementations of the Health Checks API in the languages we use. Don't see your favourite language? Contribute back to the community by sharing your implementation.
An API is only the start. We have developed some tools that use the Health Checks API that help make our lives easier.
Microservice Graph Explorer
Navigate to all of the microservices in your application in real time using the real application connections. The Microservice Graph Explorer gives you the ability to monitor the status of your microservices as well and provides dashboard and debugging information that can help you discover the source of outages in no time. It also works as a great learning / exploration tool for the devops in your organization to understand all the different dependencies of your application. Watch demo video
The Microservice Graph Explorer is now open source at https://github.com/hootsuite/microservice-graph-explorer
Have you written a great tool that uses the Health Checks API? We happily accept contributions.
Monitoring and Alerting
To keep monitoring and alerting simple, we believe that monitoring the
/status/aggregate endpoint is all you will need to know the health of your microservice or application. You can use any of your existing monitoring tools to do this. We use Sensu for server monitoring and have configured Sensu to use the Health Checks API
/status/aggregate endpoint to alert when a microservice or application is not in a healthy state. For more info on the
/status/aggregate endpoint, see the API docs.
How To Contribute
Contribute by submitting a PR and a bug report in GitHub.