Monitoring microservices
A microservices-based application is highly flexible in terms of deployment and scaling. It consists of multiple services that may have one or more instances running on a cluster of machines across the network. In such a highly distributed and flexible environment, it is of utmost importance that each instance of a microservice is monitored in real time to get a clear view of the deployed services, their performance, and to capture issues of interest that must be reported as soon as they occur. Since each request to a microservice-based application may span out to one or more requests among microservices, there should be a mechanism to track the flow of requests and also locate the areas of bottleneck that can be addressed by performing a root cause analysis and often scaling the services further to meet the demand.

One of the ways to set up an effective monitoring system is to collect all the metrics across the services and machines and store them in a centralized...