How it works
What you get
| Capabilities | Limitations |
|---|---|
| Metrics and logs in one source | CloudWatch API costs per query |
| Cross-account and cross-region | CloudWatch query language (not PromQL) |
| Metric math and statistics | API latency affects dashboards. |
| Template variables | Rate limits with many panels |
| Logs Insights queries | Alert evaluation calls API. |
Authentication options
IAM access keys, assume role, or Grafana Cloud AWS integration
Documentation
View the full documentation. Learning path coming soon!
Script
The CloudWatch data source is Grafana’s direct connection to AWS. You provide IAM credentials: access keys, an assumed role, or if you’re running in Grafana Cloud, you can use the built-in AWS integration.
Once connected, you can query both metrics and logs. Build a dashboard showing EC2 CPU alongside Lambda invocations alongside RDS connections, all pulling live from CloudWatch.
Cross-account access works through IAM role assumption, so you can see data from multiple AWS accounts in one dashboard.
The trade-offs are real though. Every time a panel refreshes, that’s a CloudWatch API call. Ten panels refreshing every 30 seconds means hundreds of API calls per hour. That costs money and can hit rate limits.
And you’re writing queries in CloudWatch’s syntax: metric math, statistics, Logs Insights, not the PromQL you might already know.
But for quick visualization or when you want to stay cloud-native, this works great.
