”;
Problem Statement
Microservice architecture structures an application as a set of loosely coupled microservices and each service can be developed independently in agile manner to enable continous delivery/deployment. How to analyze and troubleshoot application problems. How to track application performance and check bottlenecks. How to tracking mutiple services with minimum runtime overhead?
Solution
We can implement a instrumentation service which will be responsible to gather statistics about individual operations and a central metrics service which should aggregates metrics and provides the reporting and alerting. These services can collect the performance metrics in two ways −
-
Push − A services pushes the metrics to central metrics service.
-
Pull − The central metrics service pulls the metrics from the services.
Examples
Following are the examples of Instrumentation libraries −
-
Java Metrics Library − A Java library to get insight into what code does in production.
-
Prometheus client libraries − Prometheus libraries to monitor services.
Following are the examples of Metrics Aggregation libraries −
-
Prometheus − An open-source systems monitoring and alerting toolkit.
-
AWS Cloud Watch − AWS resources and service observability and monitoring service.
”;