Count unique CloudWatch custom metrics from resources and dimensions, then price metrics, alarms, dashboards and API calls.
CloudWatch charges per unique metric per month, and uniqueness is defined by the full dimension set — so emitting the same metric name tagged with a request ID creates a new billed metric for every request. Datapoint volume itself is not charged beyond the PutMetricData API calls, which is why batching up to 1000 metrics per call keeps API cost negligible while cardinality quietly explodes. Confirm the current per-metric, per-alarm and per-dashboard prices for your region. Custom metric cost scales with cardinality rather than traffic, so a well-meaning per-customer or per-instance dimension can turn a 15 USD monitoring bill into thousands without any change in request volume.
CloudWatch Metrics
unique metrics = resources × metric names per resource; cost = billable metrics × metric price + alarms × alarm price + dashboards × dashboard price + API calls ÷ 1000 × API price.
Dimension cardinality
adding one dimension with k distinct values multiplies your billed metric count by k — cardinality, not volume, drives this bill.
unique metrics = resources × metric names per resource; cost = billable metrics × metric price + alarms × alarm price + dashboards × dashboard price + API calls ÷ 1000 × API price. CloudWatch charges per unique metric per month, and uniqueness is defined by the full dimension set — so emitting the same metric name tagged with a request ID creates a new billed metric for every request. Datapoint volume itself is not charged beyond the PutMetricData API calls, which is why batching up to 1000 metrics per call keeps API cost negligible while cardinality quietly explodes. Confirm the current per-metric, per-alarm and per-dashboard prices for your region.
Custom metric cost scales with cardinality rather than traffic, so a well-meaning per-customer or per-instance dimension can turn a 15 USD monitoring bill into thousands without any change in request volume.
This calculator takes 12 inputs: Resources emitting metrics, Unique metric names per resource, Standard-resolution alarms, High-resolution alarms, Dashboards, PutMetricData calls per month, Price per custom metric per month, Price per standard alarm, Price per high-resolution alarm, Price per dashboard, Price per 1000 API requests, Apply the always-free allowances. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Yes. Standard metrics that AWS services publish, such as Lambda Duration or ALB RequestCount at 5-minute or 1-minute resolution, are free. You pay for metrics you publish yourself with PutMetricData or through the Embedded Metric Format, plus alarms and dashboards on any metric.
Write it as structured logs and query it with Logs Insights, or use Embedded Metric Format and only promote the low-cardinality dimensions you actually alarm on to metrics. Logs bill by the GB, which is far cheaper than one metric per unique tag value.