How to monitor a micro-service oriented solution? I run a micro-service oriented system, running under a private network, composed mainly of:


databases (clusters)
internal API's
external/public API's
workers (services)
monitoring servers


All are running Debian (7/8) and mainly using nginx and supervisor.

I'm currently monitoring logs using ELK stack. But I do want to have a monitoring/alerting system to include the following:


internal/public API's (calls)
databases status (only basic, to know when the cluster does not have issues)
ram/cpu for the servers


What do you recommend to use? I'm more open to open-source solution, but also can pay for services that are mature (not interested in startup solutions)
Prometheus is a popular tool for monitoring microservices deployed to the cloud in combination with Grafana. For a better understanding of your inter-service issues, a distributed tracing tool is needed as well.