How can I see why I was charged for CloudWatch usage, and then how can I reduce future charges?
Last updated: 2019-12-09
I'm seeing high Amazon CloudWatch charges in my AWS bill. How can I see why I was charged for CloudWatch usage, and then how can I reduce future charges?
Review your AWS Cost and Usage reports to understand your CloudWatch charges. Look for charges for the following services.
Note: Items in bold are similar to what you might see in your reports. In your reports, <region> represents the abbreviation for your AWS Regions.
Custom metrics: MetricStorage <region>-CW:MetricMonitorUsage
CloudWatch metric API calls:
- <API Name> <region>-CW:Requests
- GetMetricData <region>-CW:GMD-Requests/Metrics
- Unknown <region>-CW:AlarmMonitorUsage
- Unknown <region>-CW:HighResAlarmMonitorUsage
CloudWatch dashboards: DashboardHour DashboardsUsageHour(-Basic)
- PutLogEvents <region>-DataProcessing-Bytes
- PutLogEvents <region>-VendedLog-Bytes
- HourlyStorageMetering <region>-TimedStorage-ByteHrs
CloudWatch Events: AWSEvents PutEvents <region>-Event(-64K-Chunks)|Request
When you understand what you were charged for and why, use the following recommendations to reduce future costs by adjusting your CloudWatch configuration.
Note: To easily monitor your AWS costs in the future, enable billing alerts.
- Charges are incurred by detailed CloudWatch monitoring for EC2 instances, Auto Scaling group launch configurations, and API gateways.
- To reduce costs, disable detailed monitoring of instances, Auto Scaling group launch configurations, and API gateways, as appropriate.
- Charges are incurred by monitoring more than ten custom metrics. Custom metrics include those that you’ve created, as well as those used by tools such as the CloudWatch agent and application or OS data from EC2 instances.
- Request metrics for Amazon Simple Storage Service (Amazon S3) and Amazon Simple Email Service (Amazon SES) events sent to CloudWatch incur charges.
- PutMetricData calls for a custom metric can also incur charges.
- Amazon Kinesis Data Streams enhanced (shard-level) metrics and AWS Elastic Beanstalk enhanced health reporting metrics sent to CloudWatch incur charges.
- To reduce costs, disable monitoring of custom metrics, as appropriate. To find your custom metrics, enter NOT AWS for Search Metrics in the Metric Summary section of the CloudWatch console.
CloudWatch metric API calls
- Charges vary by CloudWatch metric APl. GetMetricStatistics and ListMetrics API calls that exceed one million requests incur charges. PutMetricData calls, as well as any ListMetrics calls through the AWS Command Line Interface (AWS CLI) or an SDK, incur charges.
- To reduce costs, make ListMetrics calls through the console for free rather than making them through the AWS CLI. Collect multiple PutMetricData requests into one StatisticSet call. For best practices when using GetMetricStatistics or GetMetricData APIs, see Should I use GetMetricData or GetMetricStatistics for CloudWatch metrics?
- Charges are incurred when you exceed ten CloudWatch alarms. Exception: High-resolution alarms always incur charges.
- To reduce costs, remove unnecessary alarms.
- Charges are incurred when you exceed three dashboards (with up to 50 metrics).
- Calls to dashboard-related APIs through the AWS CLI or an SDK also incur charges after requests exceed one million. Exception: GetMetricWidgetImage always incurs charges.
- To reduce costs, keep your total number of dashboards to three or fewer. Make dashboard-related API calls through the console for free rather than making them through the AWS CLI or an SDK.
- Charges are incurred by ingestion and storage of Amazon CloudWatch Logs. Check the IncomingBytes metric to determine ingested data amounts. Refer to your AWS bill to determine data storage amounts.
- To reduce ingestion costs, stop ingestion of unnecessary logs. To reduce storage costs, change the retention period for your log groups.
- Charges are based on the number of custom events (not the number of rules). Events sent from one AWS account to another are billed to the sender account as custom events.
- To reduce costs, minimize PutEvents calls. Also, reduce the number of events that are sent to an event bus (they’re also charged as custom events).