Unboxing Amazon Managed Service for Prometheus (AMP)
AWS announced Amazon Managed Service for Prometheus (AMP) in December 2020 during re:Invent. Prometheus is a monitoring system as well as a time-series database. Let’s take a first look at the managed service that is currently in public preview.
- Monitoring System designed machine-centric monitoring as well as monitoring of highly dynamic service-oriented architectures.
- Time Series Database storing data in memory and on local disk in an efficient custom format. Scaling is achieved by functional sharding and federation.
- Open Source project built initially at SoundCloud. Prometheus is a standalone open-source project and maintained independently of any company which joined the Cloud Native Computing Foundation in 2016.
On AWS, AMP competes with CloudWatch, the built-in, and proprietary monitoring solution.
The key facts about AMP in brief:
- AMP is in public preview and not yet production-ready.
- AMP is available in five regions and multi-AZ by default.
- AMP scales ingestion, storage, and querying automatically.
- AMP does not support pulling data - an essential feature for smooth integration with K8s. Currently, only pushing data is supported.
- AMP does not support the alerting manager yet.
- AMP does not allow to upload metric samples older than 1 hour and deletes data after 150 days.
- AMP comes with encryption-at-rest based on KMS and uses HTTPS for all communication - even internal traffic between AZs.
Want to learn more? Watch my video, including a demo about how to get metrics from your EKS (managed Kubernetes) cluster to AMP.
I’ve used the following guides to setup my EKS + AMP demo.
- Set up ingestion from an existing Prometheus server in Kubernetes
- Query using Grafana running in an Amazon EKS cluster
The spreadsheet allows you to compare the monthly costs of AMP and CloudWatch custom metrics.
Looking for a new challenge?
The pricing model of AMP and CloudWatch are very different. That’s why CloudWatch could be much more cost-effective than AMP or the other way round, depending on your workload.
For example, in the following scenario with more writes than reads, CloudWatch metrics are more expensive than AMP.
However, when you query your metrics frequently, AMP gets much more expensive than CloudWatch metrics.
AWS is going in an interesting direction with AMP. Form a customer perspective; it is a good thing that AMP competes with CloudWatch. However, AMP is far away from being a production-ready and straightforward to use service. I’m looking forward to the releases during the following months and years.