AWS CloudWatch metrics
AppSignal can receive and visualize metrics from your AWS infrastructure through CloudWatch Metric Streams. Once connected, AppSignal automatically creates magic dashboards for the AWS services you use, giving you pre-built charts for the metrics that matter most.
How it works
AWS CloudWatch collects metrics from services running in your AWS account. A CloudWatch Metric Stream exports those metrics through Amazon Data Firehose to AppSignal's HTTP endpoint in OpenTelemetry format.
The data flow looks like this:
AWS services → CloudWatch → Metric Stream → Data Firehose → AppSignal
Once metrics arrive, AppSignal normalizes the metric names, applies tags from CloudWatch dimensions, and stores them as time series data. When AppSignal detects metrics from a supported AWS service, it creates a magic dashboard with pre-built charts for that service.
Set up CloudWatch metrics
There are two ways to connect CloudWatch metrics to AppSignal:
Console setup
Follow the instructions to create a Firehose delivery stream, an S3 backup bucket, and a CloudWatch Metric Stream through the AWS Console.
See Stream AWS CloudWatch metrics through the AWS Console.
CloudFormation
Deploy a single CloudFormation template that creates all the required resources in one step. This is the fastest way to get started and the easiest to reproduce across AWS accounts or regions.
See Stream AWS CloudWatch metrics with CloudFormation.
Magic dashboards
AppSignal automatically creates dashboards when it detects CloudWatch metrics from a supported AWS service. Each dashboard is designed to answer common operational questions: is anything broken, why is it slow, and do I need to scale?
Dashboards put health and error indicators first, followed by resource utilization, then operational context. Chart descriptions explain what values indicate a problem and what to do about it, so you do not need to be an AWS monitoring expert to interpret your data.
AppSignal supports magic dashboards for over 45 AWS services across compute, databases, networking, storage, messaging, and more.
See AWS magic dashboards for the full list of supported services and their charts.
Choose which metrics to stream
CloudWatch Metric Streams can send metrics from all AWS services in your account or a filtered subset. Streaming all metrics is the simplest option. If you only need specific services, filter by namespace to limit the data sent through Firehose.
To filter, add IncludeFilters to the Metric Stream resource, specifying the CloudWatch namespaces you want (such as AWS/EC2, AWS/Lambda, or AWS/RDS). See the AWS magic dashboards page for the namespace of each supported service.
For filtering configuration examples, see the CloudFormation setup guide.
Metric naming
AppSignal normalizes CloudWatch metric names to lowercase with underscores. The format is the normalized namespace followed by the snake_case metric name.
For example, AWS/Lambda Duration becomes aws_lambda_duration, and AWS/Firehose DeliveryToS3.Success becomes aws_firehose_delivery_to_s3_success.
You can use these normalized names when building custom dashboards or setting up anomaly detection in AppSignal.
Tags and dimensions
CloudWatch dimensions (such as FunctionName, DBInstanceIdentifier, or ServiceName) become tags in AppSignal. Use these tags to filter charts by specific resources.
Magic dashboards use wildcard tag filters to show all resources of a given type as separate lines on the same chart. You can also use these tags in custom dashboards for more focused views.
Multi-region and multi-account setups
CloudWatch Metric Streams operate within a single AWS region. If you run workloads in multiple regions, deploy a separate Metric Stream and Firehose delivery stream in each region. The CloudFormation template can be deployed once per region to set this up.
For multi-account setups, create a Metric Stream in each account. Use the same App-level Push API key to send all metrics to a single AppSignal app, or use different keys to separate metrics across apps.
Troubleshooting
If metrics do not appear in AppSignal after setup:
- Check the Monitoring tab on your Firehose delivery stream in the AWS Console. Look for non-zero Incoming records and HTTP endpoint - Success metrics.
- Verify the Metric Stream state shows Running in the CloudWatch console under Metrics > Streams.
- Check the S3 backup bucket for failed delivery records.
- Confirm the output format is set to OpenTelemetry 1.0. Other formats are not supported.
Some AWS metrics (such as S3 daily storage metrics) are reported with timestamps older than two hours and do not appear in Metric Streams. See the AWS documentation on CloudWatch Metric Streams for details on metric reporting frequencies.
If you need help, contact us.