Integration with AWS CloudWatch Metrics via Metric Stream
This guide explains how to stream AWS CloudWatch metrics (e.g., EC2, RDS, Lambda) into OpenObserve using CloudWatch Metric Streams and Kinesis Data Streams.
Overview
CloudWatch Metric Streams allow efficient, near real-time delivery of metrics to a Kinesis Data Stream. OpenObserve pulls these metrics via an HTTP endpoint, enabling unified, real-time observability across your AWS infrastructure and applications.
Steps to Integrate
Prerequisites
- OpenObserve account (Cloud or Self‑Hosted)
- AWS IAM permissions for:
- CloudWatch:
ListMetrics
,GetMetricData
,GetMetricStatistics
- Kinesis Data Streams:
CreateStream
,PutRecord
- CloudWatch:
- OpenObserve ingestion URL and Access Key
Step 1: Get OpenObserve Ingestion URL and Access Key
- In OpenObserve: go to Data Sources → Recommended → AWS
-
Copy the ingestion HTTP URL and Access Key
Example format:
Step 2: Create a Kinesis Firehose Delivery Stream
- In AWS Kinesis Firehose, Create delivery stream.
- Set Source:
Direct PUT
and Destination:HTTP Endpoint
. - Provide OpenObserve's HTTP Endpoint URL and Access Key, and set an S3 backup bucket.
- Give the stream a meaningful name and Create it.
Step 3: Create CloudWatch Metric Stream
- Navigate to CloudWatch → Metric Streams → Create
- Choose Custom setup
- For Destination, select Kinesis Data Stream → Select your newly created stream
- Choose AWS namespaces to monitor (e.g.,
AWS/EC2
,AWS/RDS
,AWS/Lambda
) - Optional: Filter specific metrics
- Name your stream and click Create Stream
Step 4: Verify Metrics in OpenObserve
- Go to Logs → select your stream → Set time range → Click Run Query
Troubleshooting
No metrics appearing?
- Confirm Kinesis Data Stream exists and is active
- Verify Metric Stream configuration in CloudWatch
- Check IAM permissions for CloudWatch and Kinesis
- Validate ingestion URL and Access Key in OpenObserve