Docker, Microservices, etc… are hottest topics for last couple of years. Most of the company has made lots of investment on transforming their monolithic applications to microservices. It is best practice to divide your services to minimal ones. After dividing services within microservice world, divide infrastructure into minimal ones by using docker, but this produces lots of actions that should be taken into consideration. While we have monolithic application, it is very simple to monitor dedicated servers for only one application. We may have multiple instances of divided services and we need to setup stable monitoring system to track our system 24/7 .
We need to collect correct metrics to monitor our system. To collect metrics from dockerized and containerized environment, you can install cAdvisor to your swarm cluster. After that, we can use Prometheus to collect data from cAdvisor. Prometheus is good for collecting metrics from specific sources, and it has simple ui to query metrics. However, it will be better to use Grafana to grab analyzed metrics from Prometheus. With Prometheus, we can also, create alert system to notify responsible people via email, chat channels, sms, etc… With cAdvisor-Prometheus-Grafana you can get following monitoring dashboard;