# Excessive CloudWatch GetMetricData API Polling by Monitoring Tools

Canonical: https://www.pointfive.co/efficiency-hub/inefficiencies/excessive-cloudwatch-getmetricdata-api-polling-by-monitoring-tools

Third-party observability platforms, open source exporters and in-house scripts usually collect AWS metrics by calling the CloudWatch GetMetricData API...

By: PointFive

Updated: 2026-09-28

[Cloud Efficiency Hub](https://www.pointfive.co/efficiency-hub) 

The short version

Third-party observability platforms, open source exporters and in-house scripts usually collect AWS metrics by calling the CloudWatch GetMetricData API on a schedule.

PointFive Research

Cloud cost research at PointFive

AWS service

[AWS CloudWatch](https://www.pointfive.co/efficiency-hub/cloud-services/aws-cloudwatch)

Category

[Other](https://www.pointfive.co/efficiency-hub/service-category/other)

Reference

CER-0380

Type

Excessive Ingestion or Processing

## Explanation

Why the waste happens and who it affects.

GetMetricData is billed by the number of metrics requested and, unlike ordinary CloudWatch API requests, it is never covered by the free tier. AWS's own cost guide warns that GetMetricData can significantly increase costs and that third-party monitoring tools often do so when they frequently pull data.

The charge grows with polling frequency multiplied by the number of metrics pulled. Integrations are often set up to collect every namespace in every Region at a short interval, several tools or accounts poll the same metrics, and metrics that nobody charts or alerts on are fetched around the clock. Because the cost appears on the AWS bill under CloudWatch rather than on the monitoring vendor's invoice, it is easy to miss.

## Billing model

The pricing dimensions that drive this cost.

GetMetricData requests

Billed per 1,000 metrics requested from the first call, reported under usage type GMD-Metrics

Standard API requests

GetMetricStatistics, ListMetrics and similar calls are billed per 1,000 requests after the free tier of 1 million requests per month

Metric streams

Billed per metric update streamed, plus Amazon Data Firehose delivery charges

CloudTrail data events

Optional logging of GetMetricData calls to identify callers adds CloudTrail data event charges

## How to detect

4 checks to find it in your estate.

- In Cost Explorer, filter to CloudWatch, group by usage type and look for GMD-Metrics (for example EU-CW:GMD-Metrics) growing or making up a large share of CloudWatch spend, then group by API operation to confirm GetMetricData

- Chart the AWS/Usage CallCount metric for the CloudWatch GetMetricData API to see daily call volume and spikes

- Enable CloudTrail data events for CloudWatch metrics for a limited period and group GetMetricData events by userIdentity.arn, sourceIPAddress and userAgent to identify which tools, roles and accounts make the calls; calls made by CloudWatch dashboards and by a cross-account monitoring account also appear in CloudTrail but are not charged

- Review each monitoring integration's settings for polling interval, enabled namespaces, Regions and metric filters, and look for more than one tool collecting the same metrics

## How to fix

5 ways to remove the waste.

- Restrict integrations to the namespaces, Regions, resources and metrics that are actually charted or alerted on

- Lengthen polling intervals where near-real-time data is not needed, for example for cost, capacity and daily reporting metrics

- For high-volume, continuous collection by a partner tool, evaluate CloudWatch metric streams with include filters, comparing the per-update streaming and Firehose cost against current GetMetricData cost before switching

- For small, infrequent pulls in custom scripts, GetMetricStatistics can be cheaper because it is covered by the free tier of 1 million API requests

- Remove duplicate collectors so each metric is pulled by one system, and turn off CloudTrail data events for CloudWatch once the callers have been identified

## Documentation

Vendor references for pricing and configuration.

- [Amazon CloudWatch Pricing  aws.amazon.com](https://aws.amazon.com/cloudwatch/pricing/)

- [Analyzing, optimizing, and reducing CloudWatch costs  docs.aws.amazon.com](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html)

- [GetMetricData - Amazon CloudWatch API Reference  docs.aws.amazon.com](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html)

- [Use metric streams  docs.aws.amazon.com](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Metric-Streams.html)

- [Identifying resources driving Amazon CloudWatch GetMetricData charges using AWS CloudTrail  aws.amazon.com](https://aws.amazon.com/blogs/mt/identifying-resources-driving-amazon-cloudwatch-getmetricdata-charges-using-aws-cloudtrail/)

## Related inefficiencies

[Browse the library](https://www.pointfive.co/efficiency-hub)

- AWS CloudWatch  CER-0233

### [Overly Permissive VPC Flow Log Filters Sent to CloudWatch Logs](https://www.pointfive.co/efficiency-hub/inefficiencies/overly-permissive-vpc-flow-log-filters-sent-to-cloudwatch-logs)

VPC Flow Logs configured with the ALL filter and delivered to CloudWatch Logs often result in unnecessarily high log ingestion volumes - especially in high-traffic environments. This setup is rarely required for day-to-day monitoring or...

Other

- AWS CloudWatch  CER-0379

### [High-Cardinality Custom Metrics in CloudWatch](https://www.pointfive.co/efficiency-hub/inefficiencies/high-cardinality-custom-metrics-in-cloudwatch)

A classic CloudWatch metric is identified by its namespace, name and dimensions, and CloudWatch treats every unique combination of dimension values as a separate metric. Each of those is billed as a custom metric for every hour it receives...

Other

- AWS CloudWatch  CER-0224

### [Suboptimal Log Class Configuration in CloudWatch](https://www.pointfive.co/efficiency-hub/inefficiencies/suboptimal-log-class-configuration-in-cloudwatch)

By default, CloudWatch Log Groups use the Standard log class, which has a higher per-GB ingestion price. AWS also offers an Infrequent Access (IA) log class designed for logs that are rarely queried - such as audit trails, debugging...

Other

---
Source: the public page above. Product screenshots and illustrative interfaces are examples, not live customer data.

