Prometheus vs ElasticSearch. Which is better for container and server monitoring?

ELK is a general-purpose no-sql stack that can be used for monitoring. We've successfully deployed one on production and used it for some aspects of our monitoring system. You can ship metrics into it (if you wish) and use it to monitor them, but its not specifically designed to do that. Nor does the non-commercial version (version 7.9) come with an alerting system - you'll need to setup another component for that (like Sensu) or pay for ES commercial license.

Prometheus, on the other hand, is designed to be used for monitoring. And along with its metric-gathering clients (or other 3rd party clients like Telegraf and its service discovery options (like consul) and its alert-manager is just the right tool for this job.

Ultimately, both solutions can work, but in my opinion Elasticsearch will require more work and more upkeep (we found that ES clusters are a pain to maintain - but that depends on the amount of data you'll have).


I am using openshift and we are running both tool and both have different job. aggregating all the logging and shipping to elastic search for ease of browsing all the logging and similar things.

our prometheus use is mainly for metrics either for the nodes or the pods and definitely grafana makes a great interface to view all of prometheus metrics for sure.