AWS CloudWatch Metrics via Firehose
AWS CloudWatch Metrics provide real-time insights into the performance and health of AWS resources and applications such as EC2, Lambda, API Gateway, and more. For better usability and control, you can send these metrics to Dash0 via Firehose stream.
You can create a CloudWatch metric stream and direct it to an Amazon Data Firehose delivery stream. Firehose can then deliver the metrics to Dash0 through an HTTP endpoint. This guide will teach you how.
Follow AWS documentation to create a Firehose delivery stream from AWS console:
1. Choose source and destination
Choose "Direct PUT" as the source and "HTTP Endpoint" as the destination of your Firehose stream.
2. Firehose stream name
Give your Firehose stream a name.
3. Destination settings
In HTTP Endpoint URL, enter AWS CloudWatch Metrics (JSON) via Firehose HTTP endpoint:
Create a Dash0 authentication token for the Firehose stream. By default, data will be sent to the default dataset. If you want to send the data to another dataset, you can restrict the token access to that specific dataset. It's also recommended to grant only the ingestion permission to this token.
In the authentication section, you can either choose "Use access key" option and enter the authentication token directly as the Access Key:
or use AWS Secrets Manager to retrieve the token programmatically.
You can keep the rest of the settings as default. Optionally, you can enable GZIP encoding to compress the data.
4. Backup settings
Create or choose an existing S3 bucket to store data in case of delivery failures.
Follow AWS documentation to create a CloudWatch metric stream that sends selected metrics in JSON to your Firehose delivery stream previously created.
1. Choose destination
Choose Custom setup with Firehose and select the Amazon Data Firehose stream created in the previous step.
2. Change output format
Choose JSON as the output format.
CloudWatch supports exporting metrics in both JSON and OpenTelemetry 1.0 format. We have tested sending metrics in both formats to Dash0 and found that metrics exported in JSON format have more structured resource attributes that are easier to query. Therefore, we require using the JSON format. Choosing OpenTelemetry 1.0 format will lead to delivery failure in Firehose stream.
3. Select metrics to be streamed
Select the metrics you want to stream to Dash0.
4. Custom metric stream name
Give your CloudWatch metric stream a unique name.
Once everything is set up, you can find CloudWatch metrics in Dash0 Metrics Explorer
by filtering with aws.cloudwatch.metric_stream_name
or with your cloud.account.id
.
You will see metrics grouped under aws
metric namespace.
The metric names have been normalized according to OpenTelemetry naming conventions.
For example, CPUUtilization
of EC2 instances becomes aws.ec2.cpu_utilization
.