Amazon CloudWatch vs Prometheus: What are the differences?
Amazon CloudWatch: Monitor AWS resources and custom metrics generated by your applications and services. With Amazon CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health. Programmatically retrieve your monitoring data, view graphs, and set alarms to help you troubleshoot, spot trends, and take automated action based on the state of your cloud environment; Prometheus: An open-source service monitoring system and time series database, developed by SoundCloud. Prometheus is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.
Amazon CloudWatch can be classified as a tool in the "Cloud Monitoring" category, while Prometheus is grouped under "Monitoring Tools".
Some of the features offered by Amazon CloudWatch are:
- Basic Monitoring for Amazon EC2 instances: ten pre-selected metrics at five-minute frequency, free of charge.
- Detailed Monitoring for Amazon EC2 instances: seven pre-selected metrics at one-minute frequency, for an additional charge.
- Amazon EBS volumes: eight pre-selected metrics at five-minute frequency, free of charge.
On the other hand, Prometheus provides the following key features:
- a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions)
- a flexible query language to leverage this dimensionality
- no dependency on distributed storage
"Monitor aws resources" is the top reason why over 70 developers like Amazon CloudWatch, while over 32 developers mention "Powerful easy to use monitoring" as the leading cause for choosing Prometheus.
Prometheus is an open source tool with 24.6K GitHub stars and 3.49K GitHub forks. Here's a link to Prometheus's open source repository on GitHub.
PedidosYa, Sellsuki, and eTobb are some of the popular companies that use Amazon CloudWatch, whereas Prometheus is used by Slack, Docplanner, and Uber Technologies. Amazon CloudWatch has a broader approval, being mentioned in 706 company stacks & 321 developers stacks; compared to Prometheus, which is listed in 235 company stacks and 84 developer stacks.
What is Amazon CloudWatch?
What is Prometheus?
Want advice about which of these to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Amazon CloudWatch?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
If you have a single server, checking log files is as easy as SSHing to it and viewing logs. When you move to the container world, with many servers, you need a place to aggregate and search through all of your logs. CloudWatch provides us with this and it was trivial to setup.
We primarily use Prometheus to gather metrics and statistics to display them in Grafana. Aside from that we poll Prometheus for our orchestration-solution "JCOverseer" to determine, which host is least occupied at the moment.
CloudWatch is “on by default” in Amazon. And by just configuring a few alarms you can have a near-zero-cost monitoring service of your own.
- Collect metrics for Grafana.
- Alerts for AutoScale.
- Centralized-logging: rds, ec2, app logs with CloudWatch Log
Gather metrics from systems and applications. Evaluate alerting rules. Alerts are pushed to OpsGenie and Slack.
CloudWatch is used to monitor various aspects of our production infrastructure deployed at Amazon.
We primarily use Prometheus to gather metrics and statistics to display them in Grafana.
CloudWatch is used to monitor our servers on AWS including our EC2, RDS and ElastiCache.