Amazon CloudWatch Pricing
Why Amazon CloudWatch?
With Amazon CloudWatch, there is no up-front commitment or minimum fee; you simply pay for what you use. You will be charged at the end of the month for your usage.
Free tier
You can get started with Amazon CloudWatch for free. Most AWS Services (EC2, S3, Kinesis, etc.) send metrics automatically for free to CloudWatch. Many applications should be able to operate within these free tier limits. You can learn more about AWS Free Tier here.
| Logs |
Logs 5 GB Data (ingestion, archive storage, and data scanned by Logs Insights queries) 1,800 minutes of Live Tail usage per month (approximately an hour per day) Contributor Insights for CloudWatch Logs 1 Contributor Insights rule per month The first 1 million log events that match the rule per month |
|---|---|
| Metrics |
Basic Monitoring Metrics (Metrics sent from AWS Services by default) 10 Metrics (of Custom Metrics and Detailed Monitoring Metrics) 1 Million API requests (not including GetMetricData, GetInsightRuleReport and GetMetricWidgetImage: these 3 operations are always charged) |
| Dashboards & Alarms | Dashboards
3 Custom Dashboards referencing up to 50 metrics each per month. Additionally, all Automatic Dashboards are free. Alarms 10 Alarm metrics (only applicable to Standard resolution alarms that list metrics directly and don’t use a Metrics Insights query) |
| Application Observability |
Application Signals and transaction search (includes "golden metrics" and complete visibility into application transaction spans)
Cross-account observability
Application Events from CloudWatch Synthetics and RUM Synthetics
|
| Infrastructure Observability |
Database Insights Database Insights Standard Mode: Rolling 7 days of performance data history for the database load metric Network Monitoring Flow monitoring for 10 resources across all accounts for 12 months (7300 resource-hours per month) |
Paid tier
There is no upfront commitment or minimum fee. You simply pay for what you use and will be charged at the end of the month for your usage.
Note: Pricing varies by Region. Estimate your monthly bill using the AWS Pricing Calculator.
-
Logs
-
Metrics
-
Dashboards & Alarms
-
Application Observability
-
Insights
-
Logs
-
This section covers:
- Custom logs
- Cross-account observability
- Vended logs
- Analyze with OpenSearch
- CloudWatch Contributor Insights for CloudWatch Logs, DynamoDB and PrivateLink
See pricing tables for:
- Data Protection
- Logs Storage
- Logs Insights
- Live tail
-
Metrics
-
This section covers:
OpenTelemetry Metrics:
- Publishing OTel Metrics
- How OpenTelemetry Ingestion is Measured
- OTel Vended Metric Enrichment
- Querying Metrics with PromQL
Classic CloudWatch Metrics:
- Publishing Classic Metrics
- Retrieving Metrics with Get Services
- Metric Streams
Cross-Account Observability and Centralization:
- Cross-Account Observability
- Metrics Centralization
OpenTelemetry MetricsPublishing OpenTelemetry (OTel) Metrics
Publishing OpenTelemetry metrics to CloudWatch is charged at $0.50 per GB ingested. This flat rate includes 15 months of storage with no separate charges for API calls, metric storage, or number of unique metric series.
How OpenTelemetry Ingestion is Measured
Ingested volume is the uncompressed size of the OTLP payload received by CloudWatch. This includes metric values, names, timestamps, all attributes, and resource metadata. HTTP headers, compression overhead, and any metadata added by CloudWatch after ingestion are not counted. A typical data point with 10-15 attributes is 300-600 bytes.
OTel Vended Metric Enrichment
Vended metric enrichment converts AWS-generated CloudWatch metrics (such as EC2, RDS, and ELB metrics) into OpenTelemetry format and enriches each data point with AWS resource tags and account metadata. Enriched metrics are queryable via PromQL alongside your custom OTel metrics. Ingestion is charged at $0.50 per GB. Actual bytes per data point depend on the number and size of resource tags applied to your AWS resources. See example 25 below to understand your potential charges.
Querying Metrics with PromQLQuerying OpenTelemetry metrics via the PromQL API is charged at $0.01 per million samples scanned. A sample is one data point for one metric series at one timestamp. Queries executed through the CloudWatch console, including dashboards, are free of charge. CloudWatch Alarms that evaluate PromQL expressions incur query charges based on the number of samples scanned per evaluation.
Classic CloudWatch MetricsPublishing Classic Metrics
All custom metrics and Detailed Monitoring charges are prorated by the hour and charges are incurred only when metrics are sent to CloudWatch in a given hour. CloudWatch treats each unique combination of dimensions as a separate metric, even if the metrics have the same metric name. Detailed Monitoring pricing is based on the number of custom metrics, with no API charge for sending metrics. For example, if an EC2 instance publishes 12 additional metrics with EC2 Detailed Monitoring, it would incur a charge of up to $3.60 per month for that instance at the highest price tier, or $0.24 per month at the lowest price tier.
In addition to the metric storage charge, metrics published via the PutMetricData service incur an additional charge of $0.01/M requests.
See examples 6, 7, and 8 below to understand your potential charges.
Retrieving Classic Metrics with Get ServicesGetMetricData requests allow you to retrieve statistics for your CloudWatch metrics efficiently. Each request can include up to five statistics for a single metric. If you need more than five statistics for the same metric, each additional set of up to five statistics counts as a separate metric request. For instance, if you request nine statistics for one metric, this counts as two GetMetricData metric requests.
CloudWatch Metrics Insights provides powerful query capabilities across your metrics. When you execute a Metrics Insights query, it analyzes metrics in your account that match your specified namespace, metric name, and WHERE clause criteria. Pricing for Metrics Insights queries through the GetMetricData API is based on the total number of metrics analyzed, regardless of the result format you choose.
To help you explore and analyze your metrics, CloudWatch offers free querying through the CloudWatch console when using Metrics Insights. Note that associated costs apply for alarms and GetMetricData API calls that utilize Metrics Insights queries.
Metric StreamsCloudWatch Metric Streams pricing is based on the number of metric updates. A metric update includes four default statistics; Minimum, Maximum, Sample Count and Sum. Each additional five statistics requested for a specific metric, are billed as an additional metric update. You will also incur additional Amazon Data Firehose charges for data ingestion --- for details see the Amazon Data Firehose pricing page. You may also incur additional charges depending on your use case and final Amazon Data Firehose destination. For example: (1) when sending data to a HTTP endpoint or cross-region, data transfer out from CloudWatch Metric Streams is priced equivalent to the "Data Transfer OUT from Amazon EC2 to Internet" and "Data Transfer OUT from Amazon EC2 To" tables on the EC2 pricing page, and (2) when making additional format conversions within Amazon Data Firehose, such as configuring your Firehose delivery stream to convert the incoming data into Apache Parquet.
See example 9 below to understand your potential charges.
Cross-Account Observability & CentralizationCross-account observability lets you view and query metrics and logs across accounts from a central monitoring account without copying data. There is no additional charge. For details, see the cross-account observability documentation.
Metric Centralization
Metric centralization creates a physical copy of metrics in a destination account, enabling local alarms, dashboards, and queries without cross-account calls. The first copy to a destination account is free. Subsequent copies (e.g., to additional regions or accounts) are charged at $0.05/GB copied. For details, see the metric centralization documentation.
-
Dashboards & Alarms
-
This section covers:
- Dashboards
- Alarms on metrics
- Aggregated Alarms
DashboardsProrating
Dashboard costs are prorated: you incur dashboard costs by the hour for as long as your custom dashboard exists. Monthly dashboard costs provided below are provided for a full month of usage but will be pro-rated based on the number of hours that your custom dashboard exists in a month.
In some cases, using a dashboard can drive additional charges from features that provide data for your dashboards. Here are the most common reasons for incurring additional charges:
- When your dashboard loads data from a logs query, you incur charges for the execution of the query.
- When you share a custom dashboard, you get charged for GetMetricData API calls used to render the shared version of the dashboard. Note that you don't get charged for GetMetricData API calls to render the original dashboard.
- When your dashboard displays custom widgets or uses external metric data sources, you incur charges for the execution of the corresponding Lambda function. Note that CloudWatch is not responsible for the contents of the Lambda function, which may include instructions that also incur charges (for example if your Lambda function calls a chargeable API).
API ChargesAlarms on metricsYou incur alarm costs by the hour from the first hour in which your alarm exists. Monthly alarm costs provided below are provided for a full month of usage but will be pro-rated based on the number of hours that your alarm exists in a month. In accordance with the methodology above:
- Metric alarms incur costs for each metric that you list in the alarm metric expression (up to 10 metrics using metric math).
- PromQL query alarms incur a standard alarm cost plus query charges based on the number of samples scanned per evaluation.
- Metrics Insights query alarms incur costs for each metric analyzed by the query.
- Query alarms that evaluate metrics from connected data sources incur costs for each metric returned by the query.
- Alarms combining both a Metrics Insights query and additional metrics incur costs for each metric analyzed by the query, plus every other metric listed in the alarm metric expression.
- High-resolution alarms are alarms with an evaluation period of less than 60 seconds (for example 10 or 30 seconds)
- Anomaly detection alarms incur costs for each metric that you list in the alarm metric expression, plus two additional alarm-metric costs to account for the upper and lower band metrics generated by the anomaly detection model.
See example 10, 11, and 12 below to understand your potential charges.
Aggregated Alarms -
Application Observability
-
This section covers:
- Application Signals and transaction search (includes "golden metrics" and complete visibility into application transaction spans)
- Application Signals (includes "golden metrics", no visibility into application transaction spans)
- Cross account application observability
- X-Ray traces
- Application Events from CloudWatch Synthetics and CloudWatch RUM
-
Insights
-
This section covers:
- Container Insights with OpenTelemetry for EKS
- Container Insights with Enhanced Observability for EKS
- Container Insights with Enhanced Observability for ECS
- Container Insights without Enhanced Observability
- Database Insights Advanced Mode
- CloudWatch Network Monitoring with Flow Monitoring
- CloudWatch Network Monitoring with Internet Monitoring
- CloudWatch Network Monitoring with Synthetic Monitoring
Container Insights with OpenTelemetry for EKSContainer Insights with OpenTelemetry collects metrics from your Amazon EKS clusters at 30-second granularity using open-source receivers (cAdvisor, Prometheus Node Exporter, Kube State Metrics, NVIDIA DCGM, AWS Neuron Monitor, and EFA). Each metric is enriched with up to 150 labels including Kubernetes pod and node labels, and correlated with the specific pods using GPU and Neuron accelerators. You query these metrics using PromQL. Ingestion is charged at $0.08 per GB with no separate charges for API calls, storage, or metric series count. PromQL query charges apply as described in the Metrics tab. For details on byte calculation, see How OpenTelemetry Ingestion is Measured. See example 24 below for potential charges.
Container Insights with Enhanced Observability for EKSContainer Insights enhanced observability for Amazon EKS enables you to opt-in at the cluster level to collect container-level EKS performance metrics, Kube-state metrics, and EKS control plane metrics out-of-the box. All Container Insights metrics are ingested in Embedded Metric Format (EMF) leading to 3 billing dimensions: Logs Ingestion, Logs Storage and Metrics Storage. Container Insights with enhanced observability for EKS uses a tiered pricing model based on observations. An observation corresponds to a data point ingested at a single timestamp and unifies the two price dimensions of metric storage and logs ingestion - which is used to ingest performance metrics - into one. Logs storage is charged separately. Container logs also continue to be billed per standard CloudWatch logs storage and logs ingestion pricing. Please see example for Container Insights with enhanced observability for Amazon EKS below to understand your charges.
See example 18 below to understand your potential charges.
Container Insights with Enhanced Observability for ECSContainer Insights introduces enhanced observability for Amazon ECS which enables you to opt-in at the cluster level or account level to collect task and container-level ECS performance metrics out-of-the box. All Container Insights metrics are ingested in Embedded Metric Format (EMF) leading to 3 billing dimensions: Logs Ingestion, Logs Storage and Metrics Storage. Container Insights with enhanced observability for ECS is priced per metric, per month, prorated by the hour, and unifies the two price dimensions of metric storage and logs ingestion into one. Logs storage is charged separately. Container logs also continue to be billed per standard CloudWatch logs storage and logs ingestion pricing. Please see example for Container Insights with enhanced observability for Amazon ECS below to understand your charges.
See example 19 below to understand your potential charges.
Container Insights without enhanced observabilityYou can use Amazon CloudWatch Container Insights without enhanced observability for cluster-and-service-level aggregated metrics for Amazon ECS, and Amazon EKS. Please see example for Container Insights without enhanced observability for Amazon ECS, and Amazon EKS below to understand your charges.
Database Insights Advanced ModeCloudWatch Database Insights Advanced Mode consolidates database metrics, SQL query analytics, and logs for Amazon Aurora and RDS databases into a unified experience in CloudWatch. Pricing is based on the amount of compute resources used by the monitored databases. For provisioned instances, you are charged hourly based on the average number of vCPUs used per instance. For Amazon Aurora Serverless v2 databases, you are charged hourly based on the average number of Aurora Capacity Units (ACUs) monitored per instance.
Database logs continue to be billed separately based on standard CloudWatch Logs storage and ingestion pricing.
See example 20 below to understand your potential charges.
CloudWatch Network Monitoring with flow monitoringThere are two components that determine your bill: resources monitored and CloudWatch metrics vended. When you deploy and activate a network flow monitor agent on a compute instance (e.g. EC2 instance or EKS node), this counts as one monitored resource.
Flow monitoring vends metrics from CloudWatch for the resources you are monitoring. In addition, you will incur charges for CloudWatch metrics as per the CloudWatch metrics pricing. For more information on CloudWatch metrics pricing, see the CloudWatch metrics pricing tab.
See example 21 below to understand your potential charges.
CloudWatch Network Monitoring with Internet MonitoringPricing for internet monitoring has the following components: A fee per monitored resource, a fee per city-networks, and charges for the diagnostic logs published to CloudWatch Logs.
1. When you create an internet monitor, you associate application resources with it to be monitored, such as Amazon Virtual Private Clouds (VPCs), CloudFront distributions, and WorkSpaces directories. You are charged $0.01 per resource per hour for each monitor.
2. A city-network is the location (city) where your clients access your application resources and the network, such as an internet service provider, through which clients access the resources. You are charged $0.74 per 10,000 monitored city-networks per hour, after the first 100 city-networks (across all monitors per account).
3. Internet monitoring publishes diagnostic logs to CloudWatch Logs for your top city-networks by traffic volume (up to 500 city-networks) every 5 minutes. You incur CloudWatch Logs charges for the logs. For more information, see the CloudWatch Logs pricing page.
See example 21 below to understand your potential charges.
CloudWatch Network Monitoring with Synthetic MonitoringPricing for synthetic monitoring has two components: resources monitored and CloudWatch metrics vended. When you create a synthetic monitor, you assign it to monitor resources such as subnets in your Amazon Virtual Private Clouds (VPCs). Synthetic monitor by default enables you to monitor four IP addresses in your on-premises environment for every subnet in your VPC. You can request additional monitored resources to increase subnet and IP address coverage. Standard CloudWatch metrics pricing applies for vended metrics.
See example 21 below to understand your potential charges.
Pricing examples
Note: Pricing values displayed here are meant to be examples only. Please refer to pricing tabs for most current pricing information for your respective region(s).
-
Example 1 - Analyzing logs with Live Tail
Example 1 – Metrics Insights
Example 1 - EC2 Detailed Monitoring
You get 1,800 minutes of Live Tail session usage per month with the AWS Free Tier, after which you pay $0.01 per minute.
If you are using Live Tail to explore and analyze your logs in real time for 1,000 minutes in one month, your monthly cost would be as follows:
Monthly Live Tail usage charges
Total Live Tail usage in minutes = 1,000
0 to 1,000 minutes = $0Monthly Live Tail charges = $0
If you are using Live Tail to explore and analyze your logs in real-time for 20,000 minutes in one month, your monthly cost would be as follows:
Monthly Live Tail usage charges
Total Live Tail usage in minutes = 20,000
0 to 1,800 minutes = $0
1,801 to 20,000 minutes = $0.01 * 18,200 = $182Monthly Live Tail charges = $182
If you run Metrics Insights queries through the CloudWatch console, it incurs no charge to you.
When you run your Metrics Insights queries programmatically using AWS CLI, SDK, or AWS CloudFormation, your query is charged based on the number of metrics analyzed, regardless of how you output the results.
If you have 1,000,000 metrics in your account and run a query that selects 1,500 metrics for analysis and that analysis returns 10 time series in the results then your charge will be as follows:
Query charge = 1,500 metrics analyzed * $0.01 per 1,000 metrics analyzed = $0.015
If you have 5,000,000 metrics in your account and run a query that selects 100 metrics for analysis and that analysis returns only 1 time series in the results then your charge will be as follows:
Query charge = 100 metrics analyzed * $0.01 per 1,000 metrics analyzed = $0.001
The number of metrics sent by your EC2 instance as detailed monitoring is dependent on the EC2 instance type. This example assumes 7 metrics.
If your application runs on 5 Amazon EC2 instances 24x7 for a 30-day month, and you enable EC2 Detailed Monitoring on all instances, your charges would be as follows:
Total number of metrics = 7 metrics per instance * 5 instances = 35 metrics
Monthly CloudWatch Metrics Charges @$0.30 per custom metric = 35 * $0.30 = $10.50
Monthly CloudWatch charges = $10.5 per month
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details. -
Example 2 - Detecting and masking sensitive log data with Data Protection
Example 2 - API Gateway Detailed Monitoring
Example 2 - Cross-account observability
In this scenario, you are enabling ongoing data protection for a log group that collects 1 GB of log data per day from a payment processing application.
Monthly ingested log charges
Total log data ingested = 1 GB * 30 days = 30 GB
Charges for log data ingestion (0 to 5 GB): = $0
Charges for log data ingestion (5 to 30 GB) = $0.50 * 25 = $12.50Data protection charges for scanning, detecting, and masking sensitive data
Total log data scanned with data protection = 1 GB * 30 days = 30 GB
Charges for log data scanned = $0.12 per GB * 30 GB = $3.60Monthly archived log charges (assume log data compresses to 6 GB)
Charges for 0 to 5 GB = $0
Charges for 5 GB to 6 GB = $0.03 * 1 GB = $0.03Monthly CloudWatch charges = $12.50 + $3.60 + $0.03 = $16.13
An API Gateway endpoint enabled with detailed metrics has two resources - /devices and /authenticate deployed to stage called prod. Each of these resources one of the following methods: DELETE, POST, OPTIONS and GET.
By default, API Gateway publishes 4XXError, 5XXError, CacheHitCount, CacheMissCount, Count, IntegrationLatency and Latency per API. Once detailed metrics for API Gateway is enabled, all the above metrics along with dimensions - ApiName, method, resource, stage will be emitted to CloudWatch.
Note, not all metrics may be emitted e.g. 4XXError or 5XXError may not show up if there are no errors.
- Number of resources = 2 (devices and authenticate)
- Number of methods = 4 (DELETE, POST, OPTIONS and GET)
- Number of stage(s) = 1 (prod)
- Metrics published (Count, IntegrationLatency, Latency, 5xx, 4xx) = 5
Total number of metrics generated:
= Method (DELETE, POST, OPTIONS and GET) x Resource (authenticate and devices) x Stage (prod) x Metrics (Count, IntegrationLatency, Latency, 5xx, 4xx)= 2 x 4 x 1 x 5 = 40
Each metric charges $0.30 per full month and it bring the maximum cost to 40 x 0.3 = $12 per month.
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
If you have an application that receives 2,000 incoming requests per hour and you’re using a 10% sampling rate, then your traces recorded in your source account X will be:
Traces Recorded per Month = 2,000 requests per hour x 24 hours x 31 days x 10% = 148,800 traces
Billable Traces Recorded per Month = 148,800 traces - 100,000 traces in free tier = 48,800 traces
Monthly Traces Recorded Bill = 48,800 traces * $0.000005 = $0.244
If you share your traces from your source account X with a monitoring account Y using cross-account observability, this will create a copy of your traces on monitoring account Y which will come with no extra cost on your bill. So your monthly bill will be:Monthly traces recorded bill on source account X = $0.244
Monthly traces recorded bill on monitoring account Y = $0If you want to share the same traces from source account X with a second monitoring account, let’s say monitoring account Z, this will create an additional copy of your traces. In this case your source account, account X will be charged for this additional copy. So your final bill on source account X will be:
Monthly traces recorded bill on source account X = $0.244 +
148,800 second trace copy on monitoring account Z * $0.000005 = $0.244 + $0.744 = $0.988
Monthly traces recorded bill on monitoring account Y = $0
Monthly traces recorded bill on monitoring account Z = $0 -
Example 3 – Monitoring vended logs delivered to Amazon CloudWatch Logs, Amazon S3, or Amazon Data Firehose
Example 3 - Custom metrics
If you are monitoring AWS services that send vended log volume to one of the supported destinations per month and archiving the data for one month, you are charged based on the vended log tier per destination and any destination charges that may exist. Example of 72TB of vended logs delivered to CloudWatch Logs as follows:
Monthly log delivery charges- 0 to 10TB @$0.50 per GB = 10 * 1,024 * $0.50 = $5,120.00
- 10TB to 30TB @$0.25 per GB = 20 * 1,024 * $0.25 = $5,120.00
- 30TB to 50TB @$0.10 per GB = 20 * 1,024 * $0.10 = $2,048.00
- 50TB to 72TB @$0.05 per GB = 22 * 1,024 * $0.05 = $1,126.40
Total Delivery Charges = $5,120 + $5,120 + $2,048 + $1,126.40 = $13,414.40
Monthly log archival charges (assume log data compresses to 30 TB)
30TB @ $0.03 per GB = 30 × 1,024 * $0.03 = $921.60
Monthly CloudWatch Charges = $13,414.40 + $921.60 = $14,336
Notes:- Volume tiers reset at the start of every month
- For S3 destinations: Apart from vended logs delivery charges, customers are charged based on S3 storage costs and optional format conversion charges (e.g., Apache Parquet format conversion)
- For Firehose destinations: Besides vended logs delivery charges, customers are charged based on Firehose ingestion charges per GB processed.
- The example is based on N. Virginia. Pricing tiers and rates may vary by destination type and AWS region.
If your application runs on 51,000 Amazon EC2 instances 24x7 for a 30-day month, and you published 5 custom metrics via the PutMetricData API, your charges would be as follows:
Total number of metrics = 5 metrics per instance * 51,000 instances = 255,000 metrics
First 10,000 custom metrics @$0.30 per metric = 10,000 * $0.30 = $3,000
10,001 to 250,000 custom metrics @$0.10 per metric = 240,000 * $0.10 = $24,000
250,001 to 255,000 custom metrics @0.05 per metric = 5000 * $0.05 = $250
Monthly CloudWatch custom metrics charges = $3000 + $24000 + $250 = $27,250 per monthTotal number of API requests = 51,000 instances * (43,200 minutes/5 minutes) = 440,640,000 requests
First 1,000,000 API requests = $0
1,000,001 to 440,640,000 API requests = 439,640,000/1,000 * $0.01 = $4,396.40Monthly CloudWatch charges = $27,250 + $4,396.40 = $31,646.40 per month
-
Example 4 – Metric Streams
Example 4 – CloudWatch RUM
Example 4 - S3 Replication metrics
Example 4 - Monitoring Amazon CloudFront, AWS WAF, and Amazon MediaTailor vended logs delivered to Amazon CloudWatch Logs
If your application runs 24x7 for a 30-day month and emits 10,000 metric updates every minute, and your CloudWatch metric stream sends data to a partner HTTP endpoint via a Amazon Data Firehose delivery stream in US East, your monthly charges would be as follows:
CloudWatch Metric Streams
Total number of metric updates = 10,000 metric updates per minute * 43,200 minutes in the month = 432,000,000 metric updates per month
432,000,000 metric updates @ $0.003 per 1,000 metric updates = $1,296 per month
Monthly CloudWatch Charges = $1,296 per monthAmazon Data Firehose
Amazon Data Firehose data ingested (GB per month) = 432,000,000 metric updates * 0.5KB (assumed average size per metric update) / 1,048,576 KB/GB = 206GB / month
The Amazon Data Firehose price in US-East is $0.029 per GB of Data Ingested for the first 500 TB/month = 206GB * $0.029 = $5.97 per month
Amazon Data Firehose Charges = $5.97 per monthData Out (Amazon Data Firehose HTTP Endpoint to Monitoring Partner)
Up to 9.999 TB per month @ $0.09 per GB (since the first 100 GB is free, we will remove 100 GB from the price calculation) = 106 GB * $0.09 = $9.54
Data Out Charges = $9.54 per monthTotal Monthly Charges = $1,296 per month + $5.97 per month + $9.54 per month = $1,311.51 per month
Note: Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
If your application has 500,000 visits in a month, and you’re collecting CloudWatch RUM events at 100% sampling for page load performance and errors with 20 data events — including one start event, one page view event, and 10 performance events (three web vitals, one paint, one navigation, five resource loads), and eight errors per visit — your charges would be as follows:
Total number of RUM data events = 20 data events/visit * 500,000 visits = 10,000,000 data events
Charges for 10,000,000 RUM data events @ $1 per 100,000 data events = 10,000,000* $1/100,000 = $100Monthly CloudWatch RUM data events charges = $100 per month
If your S3 bucket has 5 replication rules enabled with S3 Metrics and Notifications enabled or S3 Replication Time Control (RTC) for each rule, you charges will be as follows:
Total number of replication metrics = 4 metrics per replication rule * 5 replication rules = 20 replication metrics
First 10,000 custom metrics at $0.30 per metric = 20 * $0.30 = $6.00
Monthly CloudWatch charges = $6.00 per month
(Note: For S3 Replication metrics you are not charged for API requests)AWS WAF Logs, Amazon CloudFront Standard Access Logs, and MediaTailor logs receive a cross product discount based on usage of the respective services.
- For each AWS WAF request, you get 500 bytes of log delivery to CloudWatch Logs or Amazon S3 at no additional charge. Any overages incur Amazon CloudWatch Logs charges.
- For each CloudFront request, you get 750 bytes of logs delivery to CloudWatch Logs at no additional charge. Any overages incur Amazon CloudWatch Logs charges.
- For each MediaTailor Ad Insertion, you get 50 kb of logs delivery to CloudWatch, Firehose, and S3 at no additional charge. Any overages incur Amazon CloudWatch Logs charges.
Overages are charged using service-specific vended logs tiering that mirrors CloudWatch Vended Logs pricing. Each service maintains its own tiering structure separate from the generic vended logs bucket.
Example:
If you are using the AWS WAF service and it sends 72 TB of WAF vended log volume to CloudWatch Logs and you have 70B WAF requests for the given month, your charges will be as follows:
WAF Logs Credits gained at the end of the month: 70B requests will provide 35 TB of WAF vended logs free for the given month.
Monthly log delivery charges- 0 to 10TB @$0.50 per GB
- Without credits: 10 * 1,024 * $0.50 = $5,120.00
- With credits: 10 TB of 35 TB credits used (25 TB credit remaining) = 0 * $0.50 =$0
- 10TB to 30 TB @$0.25 per GB
- Without credits: 20 * 1,024 * $0.25 = $5,120.00
- With Credits: 20 TB of 25 TB credits used (5 TB credit remaining) = 0 * $0.25 = $0
- 30TB to 50 TB @$0.10 per GB
- Without credits: 20 * 1,024 * $0.10 = $2,048.00
- With Credits: 5 TB of 5 TB credits used (0 TB credit remaining) = 15 * 1,024 * $0.10 = $1,536.0
- 50TB to 72TB @$0.05 per GB
- Without credits: 22 * 1,024 * $0.05 = $1,126.4
- No credits remaining
Total Delivery Charges = $0 + $0 + $1,532 + $1,126.40 = $2,662.4
Monthly log archival charges (assume log data compresses to 30 TB)
30TB @ $0.03 per GB = 30 * 1,024 * $0.03 = $921.6
Monthly CloudWatch Charges with credits = $2,662.4 + $921.60 = $3,584.0 -
Example 5 – Monitoring with Contributor Insights
Example 5 - Alarming with Anomaly Detection
Example 5 - Monitoring with logs
If you are monitoring Amazon VPC Flow Logs with a volume of 225 billion Log Events to CloudWatch Logs per month, and you have three Contributor Insights rules that match 100 percent, 50 percent, and 10 percent of these log events respectively, your charges will be as follows:
Rule charges
Total number of rules = 3 rules
First Contributor Insights rule = $0
2 Contributor Insights rules @ $0.50 per rule = $1.00Matched Log events
Total Number of Matched Log Events = (225B * 100%) + (225 * 50%) + (225B * 10%) = 225B + 112.5B + 22.5B = 360 Billion
0 to 1 million matched log events = $0
1M to 360B matched log events = 359,999M * $0.02 = $7,200Monthly CloudWatch charges = $1.00 + $7,200 = $7,201
If you enable Amazon CloudWatch Anomaly Detection on 10 standard resolution metrics per month and only want to alarm on 5 of those metrics, you will create 5 standard resolution anomaly detection alarms. Your monthly bill is calculated as follows:
Total number of standard resolution anomaly detection alarms = 5
Alarms are billed based on the number of metrics per alarm. For every anomaly detection alarm, there are three standard resolution metrics per alarm. One is the actual metric being evaluated, the second is the upper bound of expected behavior, and the third is the lower bound of the expected behavior.
One standard resolution anomaly detection alarm = $0.10 * 3 standard resolution metrics per alarm = $0.30 per month
Five standard resolution anomaly detection alarms = $0.30 per standard resolution anomaly detection alarm * 5 alarms = $1.50 per month
Monthly CloudWatch charges = $1.50 per month
Pricing values displayed here are based on US East Regions. Please refer to pricing tabs for most current pricing information for your respective region(s). Anomaly Detection is currently available in all commercial AWS Regions.
If you are monitoring HTTP 2xx, 3xx & 4xx response codes using web application access logs 24x7 for one 30-day month, by sending 1GB per day of ingested log data, monitoring for HTTP responses, and archiving the data for one month, your charges would be as follows:
Monthly Ingested Log Charges
Total log data ingested = 1GB * 30 days = 30GB
0 to 5GB = $0
5 to 30GB = $0.50 * 25 = $12.50Monthly Monitoring Charges
3 CloudWatch Metrics @$0 = 3 * $0 = $0Monthly Archived Log Charges (assume log data compresses to 6GB)
0 to 5GB = $0
5GB to 6GB = $0.03 * 1 = $0.03Monthly CloudWatch Charges = $12.50 + $0 + $0.03 = $12.53
-
Example 6 - Custom metrics
Example 6 - Analyzing logs with Live Tail
If your application runs on 51,000 Amazon EC2 instances 24x7 for a 30-day month, and you published 5 custom metrics via the PutMetricData API, your charges would be as follows:
Total number of metrics = 5 metrics per instance * 51,000 instances = 255,000 metrics
First 10,000 custom metrics @$0.30 per metric = 10,000 * $0.30 = $3,000
10,001 to 250,000 custom metrics @$0.10 per metric = 240,000 * $0.10 = $24,000
250,001 to 255,000 custom metrics @0.05 per metric = 5000 * $0.05 = $250
Monthly CloudWatch custom metrics charges = $3000 + $24000 + $250 = $27,250 per monthTotal number of API requests = 51,000 instances * (43,200 minutes/5 minutes) = 440,640,000 requests
First 1,000,000 API requests = $0
1,000,001 to 440,640,000 API requests = 439,640,000/1,000 * $0.01 = $4,396.40Monthly CloudWatch charges = $27,250 + $4,396.40 = $31,646.40 per month
You get 1,800 minutes of Live Tail session usage per month with the AWS Free Tier, after which you pay $0.01 per minute.
If you are using Live Tail to explore and analyze your logs in real time for 1,000 minutes in one month, your monthly cost would be as follows:
Monthly Live Tail usage charges
Total Live Tail usage in minutes = 1,000
0 to 1,000 minutes = $0Monthly Live Tail charges = $0
If you are using Live Tail to explore and analyze your logs in real-time for 20,000 minutes in one month, your monthly cost would be as follows:
Monthly Live Tail usage charges
Total Live Tail usage in minutes = 20,000
0 to 1,800 minutes = $0
1,801 to 20,000 minutes = $0.01 * 18,200 = $182Monthly Live Tail charges = $182
-
Example 7 – Metrics Insights
Example 7 – Monitoring vended logs delivered to Amazon CloudWatch Logs, Amazon S3, or Amazon Data Firehose
If you are monitoring AWS services that send vended log volume to one of the supported destinations per month and archiving the data for one month, you are charged based on the vended log tier per destination and any destination charges that may exist. Example of 72TB of vended logs delivered to CloudWatch Logs as follows:
Monthly log delivery charges- 0 to 10TB @$0.50 per GB = 10 * 1,024 * $0.50 = $5,120.00
- 10TB to 30TB @$0.25 per GB = 20 * 1,024 * $0.25 = $5,120.00
- 30TB to 50TB @$0.10 per GB = 20 * 1,024 * $0.10 = $2,048.00
- 50TB to 72TB @$0.05 per GB = 22 * 1,024 * $0.05 = $1,126.40
Total Delivery Charges = $5,120 + $5,120 + $2,048 + $1,126.40 = $13,414.40
Monthly log archival charges (assume log data compresses to 30 TB)
30TB @ $0.03 per GB = 30 × 1,024 * $0.03 = $921.60
Monthly CloudWatch Charges = $13,414.40 + $921.60 = $14,336
Notes:- Volume tiers reset at the start of every month
- For S3 destinations: Apart from vended logs delivery charges, customers are charged based on S3 storage costs and optional format conversion charges (e.g., Apache Parquet format conversion)
- For Firehose destinations: Besides vended logs delivery charges, customers are charged based on Firehose ingestion charges per GB processed.
- The example is based on N. Virginia. Pricing tiers and rates may vary by destination type and AWS region.
If you run Metrics Insights queries through the CloudWatch console, it incurs no charge to you.
When you run your Metrics Insights queries programmatically using AWS CLI, SDK, or AWS CloudFormation, your query is charged based on the number of metrics analyzed, regardless of how you output the results.
If you have 1,000,000 metrics in your account and run a query that selects 1,500 metrics for analysis and that analysis returns 10 time series in the results then your charge will be as follows:
Query charge = 1,500 metrics analyzed * $0.01 per 1,000 metrics analyzed = $0.015
If you have 5,000,000 metrics in your account and run a query that selects 100 metrics for analysis and that analysis returns only 1 time series in the results then your charge will be as follows:
Query charge = 100 metrics analyzed * $0.01 per 1,000 metrics analyzed = $0.001
-
Example 8 - API Gateway Detailed Monitoring
Example 8 - Monitoring Amazon CloudFront, AWS WAF, and Amazon MediaTailor vended logs delivered to Amazon CloudWatch Logs
An API Gateway endpoint enabled with detailed metrics has two resources - /devices and /authenticate deployed to stage called prod. Each of these resources one of the following methods: DELETE, POST, OPTIONS and GET.
By default, API Gateway publishes 4XXError, 5XXError, CacheHitCount, CacheMissCount, Count, IntegrationLatency and Latency per API. Once detailed metrics for API Gateway is enabled, all the above metrics along with dimensions - ApiName, method, resource, stage will be emitted to CloudWatch.
Note, not all metrics may be emitted e.g. 4XXError or 5XXError may not show up if there are no errors.
- Number of resources = 2 (devices and authenticate)
- Number of methods = 4 (DELETE, POST, OPTIONS and GET)
- Number of stage(s) = 1 (prod)
- Metrics published (Count, IntegrationLatency, Latency, 5xx, 4xx) = 5
Total number of metrics generated:
= Method (DELETE, POST, OPTIONS and GET) x Resource (authenticate and devices) x Stage (prod) x Metrics (Count, IntegrationLatency, Latency, 5xx, 4xx)= 2 x 4 x 1 x 5 = 40
Each metric charges $0.30 per full month and it bring the maximum cost to 40 x 0.3 = $12 per month.
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
AWS WAF Logs, Amazon CloudFront Standard Access Logs, and MediaTailor logs receive a cross product discount based on usage of the respective services.
- For each AWS WAF request, you get 500 bytes of log delivery to CloudWatch Logs or Amazon S3 at no additional charge. Any overages incur Amazon CloudWatch Logs charges.
- For each CloudFront request, you get 750 bytes of logs delivery to CloudWatch Logs at no additional charge. Any overages incur Amazon CloudWatch Logs charges.
- For each MediaTailor Ad Insertion, you get 50 kb of logs delivery to CloudWatch, Firehose, and S3 at no additional charge. Any overages incur Amazon CloudWatch Logs charges.
Overages are charged using service-specific vended logs tiering that mirrors CloudWatch Vended Logs pricing. Each service maintains its own tiering structure separate from the generic vended logs bucket.
Example:
If you are using the AWS WAF service and it sends 72 TB of WAF vended log volume to CloudWatch Logs and you have 70B WAF requests for the given month, your charges will be as follows:
WAF Logs Credits gained at the end of the month: 70B requests will provide 35 TB of WAF vended logs free for the given month.
Monthly log delivery charges- 0 to 10TB @$0.50 per GB
- Without credits: 10 * 1,024 * $0.50 = $5,120.00
- With credits: 10 TB of 35 TB credits used (25 TB credit remaining) = 0 * $0.50 =$0
- 10TB to 30 TB @$0.25 per GB
- Without credits: 20 * 1,024 * $0.25 = $5,120.00
- With Credits: 20 TB of 25 TB credits used (5 TB credit remaining) = 0 * $0.25 = $0
- 30TB to 50 TB @$0.10 per GB
- Without credits: 20 * 1,024 * $0.10 = $2,048.00
- With Credits: 5 TB of 5 TB credits used (0 TB credit remaining) = 15 * 1,024 * $0.10 = $1,536.0
- 50TB to 72TB @$0.05 per GB
- Without credits: 22 * 1,024 * $0.05 = $1,126.4
- No credits remaining
Total Delivery Charges = $0 + $0 + $1,532 + $1,126.40 = $2,662.4
Monthly log archival charges (assume log data compresses to 30 TB)
30TB @ $0.03 per GB = 30 * 1,024 * $0.03 = $921.6
Monthly CloudWatch Charges with credits = $1,638.40 + $921.60 = $3,584.0 -
Example 9 – Metric Streams
Example 9 - Detecting and masking sensitive log data with Data Protection
If your application runs 24x7 for a 30-day month and emits 10,000 metric updates every minute, and your CloudWatch metric stream sends data to a partner HTTP endpoint via a Amazon Data Firehose delivery stream in US East, your monthly charges would be as follows:
CloudWatch Metric Streams
Total number of metric updates = 10,000 metric updates per minute * 43,200 minutes in the month = 432,000,000 metric updates per month
432,000,000 metric updates @ $0.003 per 1,000 metric updates = $1,296 per month
Monthly CloudWatch Charges = $1,296 per monthAmazon Data Firehose
Amazon Data Firehose data ingested (GB per month) = 432,000,000 metric updates * 0.5KB (assumed average size per metric update) / 1,048,576 KB/GB = 206GB / month
The Amazon Data Firehose price in US-East is $0.029 per GB of Data Ingested for the first 500 TB/month = 206GB * $0.029 = $5.97 per month
Amazon Data Firehose Charges = $5.97 per monthData Out (Amazon Data Firehose HTTP Endpoint to Monitoring Partner)
Up to 9.999 TB per month @ $0.09 per GB (since the first 100 GB is free, we will remove 100 GB from the price calculation) = 106 GB * $0.09 = $9.54
Data Out Charges = $9.54 per monthTotal Monthly Charges = $1,296 per month + $5.97 per month + $9.54 per month = $1,311.51 per month
Note: Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
In this scenario, you are enabling ongoing data protection for a log group that collects 1 GB of log data per day from a payment processing application.
Monthly ingested log charges
Total log data ingested = 1 GB * 30 days = 30 GB
Charges for log data ingestion (0 to 5 GB): = $0
Charges for log data ingestion (5 to 30 GB) = $0.50 * 25 = $12.50Data protection charges for scanning, detecting, and masking sensitive data
Total log data scanned with data protection = 1 GB * 30 days = 30 GB
Charges for log data scanned = $0.12 per GB * 30 GB = $3.60Monthly archived log charges (assume log data compresses to 6 GB)
Charges for 0 to 5 GB = $0
Charges for 5 GB to 6 GB = $0.03 * 1 GB = $0.03Monthly CloudWatch charges = $12.50 + $3.60 + $0.03 = $16.13
-
Example 10 - Alarming with Anomaly Detection
Example 10 - Database Insights
If you enable Amazon CloudWatch Anomaly Detection on 10 standard resolution metrics per month and only want to alarm on 5 of those metrics, you will create 5 standard resolution anomaly detection alarms. Your monthly bill is calculated as follows:
Total number of standard resolution anomaly detection alarms = 5
Alarms are billed based on the number of metrics per alarm. For every anomaly detection alarm, there are three standard resolution metrics per alarm. One is the actual metric being evaluated, the second is the upper bound of expected behavior, and the third is the lower bound of the expected behavior.
One standard resolution anomaly detection alarm = $0.10 * 3 standard resolution metrics per alarm = $0.30 per month
Five standard resolution anomaly detection alarms = $0.30 per standard resolution anomaly detection alarm * 5 alarms = $1.50 per month
Monthly CloudWatch charges = $1.50 per month
Pricing values displayed here are based on US East Regions. Please refer to pricing tabs for most current pricing information for your respective region(s). Anomaly Detection is currently available in all commercial AWS Regions.
The Advanced mode of Database Insights is priced at $0.0125 per vCPU-hour for each provisioned instance, and $0.003125 per ACU-hour for each Aurora Serverless v2 instance in an Aurora cluster. For both Aurora and RDS databases, you can enable the Advanced mode of Database Insights at the cluster level, but not individually for each instance.
Below is an example for an Aurora Cluster that has one provisioned writer (db.r5.xlarge) and two Serverless v2 reader instances. In this case, the calculation of your monthly charges will be determined as follows:- Total vCPU count = (vCPU count of db.r5.xlarge × 1) = (4 × 1) = 4
- Total ACU count = Sum of average ACU usage for 2 reader instances (assuming the ACU usage of 10 and 22 for the 2 Aurora Serverlss v2 instances) = 10 + 22 = 32
- Monthly Charges = (Total vCPU usage × hourly vCPU rate for the Advanced mode of Database Insights × number of hours in the month) + (Total ACU usage × hourly ACU rate for the Advanced mode of Database Insights × number of hours in the month) = (4 × 0.0125 × 720) + (32 x 0.003125 x 720) = $108
- Usage of this feature is metered by the hour, and the partial hours are rounded up.
- Pricing does not depend on the actual amount of performance data stored.
- If you switch to the Standard mode of Database Insights, performance data older than seven days is deleted.
-
Example 11 - Alarming with Anomaly Detection
Example 11 – Alarming with composite alarms
Example 11 - Network Monitoring
If you enable Amazon CloudWatch Anomaly Detection on 10 standard resolution metrics per month and only want to alarm on 5 of those metrics, you will create 5 standard resolution anomaly detection alarms. Your monthly bill is calculated as follows:
Total number of standard resolution anomaly detection alarms = 5
Alarms are billed based on the number of metrics per alarm. For every anomaly detection alarm, there are three standard resolution metrics per alarm. One is the actual metric being evaluated, the second is the upper bound of expected behavior, and the third is the lower bound of the expected behavior.
One standard resolution anomaly detection alarm = $0.10 * 3 standard resolution metrics per alarm = $0.30 per month
Five standard resolution anomaly detection alarms = $0.30 per standard resolution anomaly detection alarm * 5 alarms = $1.50 per month
Monthly CloudWatch charges = $1.50 per month
Pricing values displayed here are based on US East Regions. Please refer to pricing tabs for most current pricing information for your respective region(s). Anomaly Detection is currently available in all commercial AWS Regions.
Composite alarms can combine any type of CloudWatch alarm. Metric alarms are billed based on the number of metrics per alarm, while composite alarms are billed per alarm unit. One composite alarm costs $0.50 per month, regardless of the number of metric alarms it combines.
If you create one composite alarm that combines four standard resolution metric alarms, your monthly bill is calculated as follows:
Four standard resolution alarms = $0.10 per alarm metric * 4 = $0.40 per month
One composite alarm = $0.50 per month
Monthly CloudWatch charges = $0.40 + $0.50 = $0.90 per month
Flow monitoring
Let’s imagine you are a retail company that wants to monitor network performance for a payment collection workload. The payment collection workload is deployed on 30 EC2 instances in a single VPC. You are interested in deploying Flow monitoring across all these instances. Your monthly Flow monitoring charges are as follows:1. Monitored resource charges:
30 days * 24 hours = 720 hours
Total number of monitored resources = 30 EC2 instances = 30 monitored resources
Since we offer 10 monitored resources for free for the first 12 months, you will be charged for the remaining = 30-10 = 20 monitored resources
20 monitored resources at $0.0069 per monitored resource per hour = 20 * $0.0069 = $0.138 * 720 hours = $99.36 per month2. CloudWatch metrics charges:
Let’s assume you create 5 monitors to monitor workloads running on these 30 instances. Each monitor vends 5 CloudWatch metrics.
Total number of metrics: 5 monitors * 5 metrics per monitor = 25 metrics
Total CloudWatch charges for metrics: 25 metrics * $0.30/metric/month = $7.5 per month
Total charge for flow monitoring in this example: $99.36 + $7.5 = $106.86 per monthInternet monitoring
If you add 10 CloudFront distributions and 20 Virtual Private Clouds (VPCs) to a monitor for monitoring 45,000 city-networks, your charges will be as follows:1. Monitored resource charges:
30 days * 24 hours = 720 hours
Total number of monitored resources = 10 CloudFront distributions + 20 VPCs = 30
30 monitored resources at $0.01 per monitored resource per hour = 30 * $0.01 = $0.30 per hour = $0.30 * 720 hours per month = $216 per month2. Monitored city-network charges:
Total monitored city-networks = 45,000, First 100 city-networks = $0
Total monitored city-networks per month = 45,000 per hour * 720 hours/month = 32,400,000 city-network hours/month
First 100 city-networks per hour, total per month (flat value every month) = 72,000 city-network hours/month
Total billed city-network hours/month = 32,400,000 city-network hours/month - 72,000 city-network hours/month = 32,328,000 city-networks hours/month
32,328,000 city-networks hours/month at $0.74 per 10,000 city-networks per hour = 32,328,000 * $0.000074 = $2392.27 per month3. CloudWatch Logs charges:
Out of 45,000 city-networks, Internet monitoring would only publish CloudWatch Logs for the top 500 city-networks which is less than 500 MB log data per day, or (500 MB * 30) = 15 GB of data per month. If you exclude the free coverage (example: 5 GB), the remaining log data you're charged for would be 10 GB (15 GB - 5 GB). If the fee per GB was $0.50 per month, a reasonable example, your monthly charges for CloudWatch Logs would be under $0.50 * 10 GB = $5 per month.
Total charge for internet monitoring in this example: $216 + $2392.27 + $5 = $2,613.27 per monthSynthetic monitoring
Let's imagine you are a financial institution that wants to monitor the performance of your trading applications using Synthetic monitoring. For resilience, you have distributed your application across three Availability Zones, mapping to three subnets. Your infrastructure connects to eight on-premises IP addresses via redundant AWS Direct Connect links. Your monthly bill for using synthetic monitoring in US East (N. Virginia) would be calculated as follows:1. Monitored resource charges:
30 days * 24hrs = 720 hours
Total number of VPC subnets: 3
Total number of on-premises destinations accessible from each VPC subnet: 8
3 VPC subnets to the first 4 destinations at $0.10 per monitored resource per hour = 3 * 720 hours * $0.10 = $216 per month
Multiplied by 2 to account for 8 destinations = $216 * 2 = $432 per month2. CloudWatch metrics charges:
For each probe Synthetic monitoring vends 3 CloudWatch metrics
Number of monitored probes: 3 subnets * 8 destination IP addresses = 24 probes
Total number of metrics: 24 probes * 3 metrics per probe = 72 metrics
Total CloudWatch charges for metrics: 72 metrics * $0.30/metric/month = $21.60 per month
Total charge for synthetic monitoring in this example: $432 + $21.60 = $453.60 per month -
Example 12 – CloudWatch alarms with Metrics Insights queries and monthly cost prorating
Example 12 - Container Insights for Amazon ECS (with & without enhanced observability)
With AWS, you build an application that runs 24/7 for several months and uses autoscaled EC2 instances. You monitor your EC2 instances with a Metrics Insights query to get alerted when the average of CPU usage across all your EC2 instances goes above an 80% threshold.
In the month of July, your application consistently uses 3 instances.
In the month of August, your application scales up to 4 instances on the 16th August at 00:00 UTC and keeps on using 4 instances until the end of the month.
To calculate monthly costs for alarms
In July (which is a 31 day month), you use your alarm continuously every day. The math expression shows how to calculate the monthly cost for a standard-resolution alarm retrieving the average from 3 metrics through a Metrics Insights query.1 (alarm) x 3 (number of metrics analyzed by the Metrics Insights query) x $0.10 (cost per metric analyzed per alarm) = $0.30
The total cost of this alarm for July is $0.30.
To calculate monthly prorated costs for alarms
In August (which is a 31-day month), you use your alarm continuously every day. The math expression shows how to calculate the monthly cost for a standard-resolution alarm retrieving the average from 3 metrics through a Metrics Insights query for 15 days, then retrieving the average from 4 metrics through a Metrics Insights query for 16 days.For 360 hours (from the 1st day at 00:00 UTC to the 15th day at 23:59 UTC), your standard-resolution alarm evaluates the average from 3 metrics through a Metrics Insights query, the costs for that period are:
1 (alarm) x 3 (number of metrics analyzed by the Metrics Insights query) x 360 / 744 (pro-rating on the number of hours in the month) x $0.10 (cost per metric analyzed per alarm) = $0.15
For 384 hours (from the 16th day at 00:00 UTC to the 31st day at 23:59 UTC), your standard-resolution alarm evaluates the average from 4 metrics through a Metrics Insights query, the costs for that period are:
1 (alarm) x 4 (number of metrics analyzed by the Metrics Insights query) x 384 / 744 (pro-rating on the number of hours in the month) x $0.10 (cost per metric analyzed per alarm) = $0.21
The total cost of this alarm for August is $0.15 + $0.21 = $0.36.
Please note that all alarms costs are prorated, regardless of whether they use a Metrics Insight query or not. You can apply the same pro-rating logic to project the cost for an alarm that is created, deleted, or modified to add or remove metrics, during the month.
1/Container Insights with enhanced observability for Amazon ECS
When using Container Insights with enhanced observability, you will be charged based on the number of metrics ingested across your container environment where this number is dependent on your container set-up including the number of container components. Assume a set-up where you monitor 1 container cluster with 5 unique service names, 10 unique task names with 20 unique task ids, and 50 average running containers, your charges would be as follows:
There is a predefined number of metrics reported for every cluster, task, service, and containers running on Fargate. Every cluster reports 29 metrics; every service reports 31 metrics; every task definition reports 26 metrics; every task reports 26 metrics, and every container reports 26 metrics. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics
= (29 cluster metrics * 1 unique cluster name) + (31 service metrics * 5 unique service names) + (26 task definition metrics * 10 unique task names) + (26 task metrics * 20 unique task ids) + (26 container metrics * 50 unique container ids)
= (29 * 1) + (31 * 5) + (26 * 10) + (26 * 20) + (26 * 50)
= 2,264 CloudWatch metricsMonthly CloudWatch metrics costs = $0.07 per metric * 2,264 metrics = $158.48
If you are using container logs, they will be charged based on standard CloudWatch logs ingestion and logs storage pricing. Note that Container Insights adds 700 bytes per log line for the metadata required to enable filtering.
For ECS clusters running on EC2, every cluster reports 24 metrics; every service reports 26 metrics; every task definition reports 21 metrics; every task reports 22 metrics and every container reports 20 metrics.
2/Container Insights without enhanced observability for Amazon ECS
Container Insights offers Amazon ECS monitoring by providing aggregated metrics at the cluster and service level. If you monitor 1 container cluster with 5 unique service names, 10 unique task names, and 50 average running containers, your costs would be as follows:
CloudWatch metrics
There is a predefined number of metrics reported for every cluster, task, and service running on Fargate. Every cluster reports 13 metrics; every service reports 15 metrics; and every task reports 10 metrics. CloudWatch metrics are aggregated by task and service using their name. Increasing the count of running instances or containers will not impact the count of CloudWatch metrics generated. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics
= (13 cluster metrics * 1 unique cluster) + (15 service metrics * 5 unique service names) + (10 task metrics * 10 unique task names)
= (13 * 1) + (15 * 5) + (10 * 10)
= 188 CloudWatch metricsMonthly CloudWatch metrics costs = $0.30 per metric for first 10,000 metrics * 188 metrics = $56.40.
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
For ECS clusters running on EC2, every cluster reports 11 metrics; every service reports 13 metrics; and every task reports 8 metrics.
CloudWatch Logs
For Amazon ECS, there is an assumed average logs size ingested for every cluster, service, task, and container. Every cluster reports 0.0181 GB logs; every service reports 0.02816 GB logs; every task reports 0.06437 GB logs and every container reports 0.04426 GB logs per month on average.
The cost of logs ingested will vary based on names used for your cluster, container, pod, service, instance names, labels, etc.
Monthly GB of CloudWatch Logs ingested = (1 cluster * 0.0181 GB) + (5 services * 0.02816 GB) + (10 task names * 0.06437 GB) + (50 containers * 0.04426 GB) = 3.02 GB per month
Monthly ingested logs costs = $0.50 per GB of ingested logs * 3.02 GB of performance events as CloudWatch Logs = $1.51 per month
Monthly CloudWatch costs = $56.40 + $1.51 = $57.91 per month.
Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
If you are using container logs, Container Insights adds 700 bytes per log line for the metadata required to enable filtering. Container logs will continue to be charged based on standard CloudWatch logs ingestion and logs storage pricing.
-
Example 13 - Container Insights for Amazon EKS and Kubernetes (with & without enhanced observability)
Example 13 - Application observability: Application Signals and Transaction Search (includes "golden metrics" and complete visibility into application transaction spans)
1/Container Insights with enhanced observability for Amazon EKS
When using Container Insights with enhanced observability, you will be charged based on the number of observations across your container environment where the total number of observations ingested is dependent on your container set-up including the number of container components. Assume a set-up where you monitor 1 cluster with 10 nodes, 1 namespace, 5 unique service names, 16 workloads, 20 pods, and 20 containers and the data points are reported for the entire month.
There is an average number of observations ingested per minute for each EKS container component. Every cluster reports 1,720 observations; every node reports 68 observations; every namespace reports 2 observations; every service reports 2 observations; every workload reports 7 observations; every pod reports 138 observations and every container reports 21 observations per minute on average.
With a monitoring charge as follows:
Total number of monthly Container Insights observations
= [ (1 cluster * 1,720 observations) + (10 nodes * 68 obs) + (1 namespace * 2 obs) + (5 services * 2 observations) + (16 workloads * 7 observations) + (20 pods * 138 observations) + (20 containers * 21 observations)] * 60 mins * 24 hrs * 30 days
= [ 1,720 + 680 + 2 + 10 + 112 + 2760 + 420] * 43,200 mins/month = 246,412,800 observations per monthYour monthly Container Insights bill = 246,412,800 * $0.21 / 1M Observations = $51.75
Once you exceed 1B observations per month then volume pricing tiers will apply respectively.
Additionally, all container logs are collected by default. Container Insights adds 700 bytes per log line for the metadata required to enable filtering. Container logs will continue to be charged based on standard CloudWatch logs ingestion and logs storage pricing.
2/Container Insights without enhanced observability for Amazon EKS and Kubernetes
If you are monitoring 1 container cluster with 10 nodes or Amazon EC2 instances, 20 pods, 5 unique service names, and 1 namespace, your charges for the aggregated cluster and service-level metrics would be as followed:
CloudWatch metrics
There is a predefined number of metrics reported for every cluster, node, pod, and service. Every cluster reports 24 metrics; every node reports 8 metrics; every pod reports 9 metrics; and every service reports 6 metrics. CloudWatch metrics are aggregated by pod, service, and namespace using their name. Increasing the count of running instances will not impact the count of CloudWatch metrics generated. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics per cluster
= 24 cluster metrics + (10 nodes or EC2 instances * 8 node metrics) + (20 unique pod names * 9 pod metrics * 1 namespace) + (5 unique service names * 6 service metrics * 1 namespace) + (1 unique namespace * 6 namespace metrics)
= 24 + (10 * 8) + (20 * 9 * 1) + (5 * 6 * 1) + (1 * 6) = 320 CloudWatch metricsMonthly CloudWatch metrics costs = $0.30 per metric for first 10,000 metrics * 320 metrics = $96
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
CloudWatch Logs
In this example, we assume an average size for Kubernetes logs ingested per month for each EKS container component, as follows. Every cluster reports 0.01621 GB logs; every namespace reports 0.0185 GB logs; every service reports 0.02182 GB logs; every node reports 0.21365 GB logs and every pod reports 0.45845 GB logs per month on average.
The cost of logs ingested will vary based on names used for your cluster, container, pod, service, instance names, labels, etc.
Monthly GB of CloudWatch Logs ingested = (1 cluster * 0.01621 GB) + (1 namespace * 0.0185 GB) + (5 services * 0.02182 GB) + (10 nodes * 0.21365 GB) + (20 pods * 0.45845 GB) = 11.45 GB per month
Monthly ingested logs costs = $0.50 per GB of ingested logs * 11.45 GB of performance events as CloudWatch Logs = $5.73 per month
Monthly CloudWatch costs = $96 + $5.73 = $101.73 per month
Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
If you are using container logs, Container Insights adds 700 bytes per log line for the metadata required to enable filtering. Container logs will continue to be charged based on standard CloudWatch logs ingestion and logs storage pricing.
This example assumes that you are not using the first time free trial (learn more about free trail in AWS Free Tier above).
If you monitor an application that generates 72 TB of spans per month, and index 2% of spans ingested.
Monthly Ingested charges
0 to 10TB @$0.35 per GB = 10 * 1,024 * $0.35 = $3,584.00
10TB to 30TB @$0.20 per GB = 20 * 1,024 * $0.20 = $4,096.00
30TB to 72TB @$0.15 per GB = 42 * 1,024 * $0.15 = $6,451.20
Total Ingestion Charges = $3,584 + $4,096 + $6,451.2 = $14,131.20 per month
Monthly Indexed charges
Assuming 1 span = ~1kB, 72 TB translates to 72B spans per month. Since you are indexing only 2%, this translates to 1.44B spans. Since 1% of spans indexed are included in the monthly ingested charges, you only pay for 1% of 720M spans per month, instead of full 2% of 1.44B spans.
720M @$0.75 per million spans indexed = 720M * $0.75 = $540 per month
Total charges
$14,131.20 + $540 = $14,671.2 per month
If you monitor an application that generates 10 TB of spans per month, 18 TB of Embedded metric format (EMF) log records as application metrics and indexes 1% of spans as trace summaries, the total GB ingested is 28TB (10+18).
Monthly Ingested charges
0 to 10TB @$0.35 per GB = 10 * 1,024 * $0.35 = $3,584.00
10TB to 30TB @$0.20 per GB = 18 * 1,024 * $0.20 = $3,686.00
Total Ingestion Charges = $3,584 + $3,686 = $7,270 per month
Monthly Indexed spans charges
No charges for indexed spans since 1% of spans indexed are included in the pricing model.
Note: Spans ingested as logs will not incur log ingestion pricing
-
Example 14 - Monitoring your application with ServiceLens
Example 14 - X-Ray tracing
Example 14 - Application observability: Application Signals (includes "golden metrics", no visibility into application transaction spans)
Application Signals:
If you monitor an application that receives 25,000 requests per minute (inbound service requests), and for each inbound request, the application makes 2 requests to dependencies (outbound dependency requests), your charges would be as follows:
Application Signals for inbound service requests: 25,000 requests per minute * 43,800 minutes in a month = 1,095,000,000 Application Signals per month
Application Signals for outbound dependency requests: 25,000 requests per minute * 2 outbound dependency requests * 43,800 minutes in a month = 2,190,000,000 Application Signals per month
Total Application Signals from requests = 1,095,000,000 + 2,190,000,000 = 3,285,000,000 Application Signals per month
Service Level Objectives (SLOs):
Each service level objective (SLO) generates two Application Signals per SLI metric period. If you create 10 SLOs with a 1-minute SLI metric period, 10 SLOs with a 5-minute SLI metric period, and 10 SLOs with a 10-minute SLI metric period, your total number of application signals would be as follows:
Application Signals for SLOs with 1-minute SLI metric period: (10 SLOs * 2 Application Signals 43,800 minutes in a month) / 1-minute SLI metric period = 876,000 Application Signals per month
Application Signals for SLOs with 5-minute SLI metric period: (10 SLOs * 2 Application Signals * 43,800 minutes in a month) / 5-minute SLI metric period = 175,200 Application Signals per month
Application Signals for SLOs with 10-minute SLI metric period: (10 SLOs x 2 ApplicationSignals x 43,800 minutes in a month) / 10-minute SLI metric period = 87,600 Application Signals per month
Total Application Signals from SLOs: 876,000 + 175,200 + 87,600 = 1,138,800 Application Signals per month
Total number of Application Signals from requests and SLOs = 3,285,000,000 + 1,138,800 = 3,286,138,800 Application Signals per month
Total charges for Application Signals:
First 100 million signals * $1.50 per 1 million Application Signals = $150
Next 900 millionsignals * $0.75 per 1 million per month Application Signals = $675
Remaining 2,286,138,800 signals * $0.30 per 1 million per month Application Signals = $685.84Total charges for Application Signals & SLOs = $150 + $675 + $685.84 = $1,510.84 per month
X-Ray traces:
By default, X-Ray tracing is enabled at a 5% sampling rate when implementing Application Signals. This default tracing rate can optionally be adjusted higher or lower.
If you monitor 1 application that receives 25,000 requests per minute (inbound service requests) and you are using the default 5% sampling rate, your tracing charges are as follows:
Traces stored:
Traces stored per month = 25,000 requests per minute * 43,800 minutes per month * 5% sample rate = 54,750,000 traces stored per month
Billable traces stored = 54,750,000 traces stored – 100,000 traces in free tier = 54,650,000 traces stored per month
Traces stored charges = 54,650,000 traces stored * $0.000005 = $273.25 per month
In addition, let's assume you make 100 queries per day, with each query scanning the last hour of data capture compromising 75,000 traces, and retrieve the full trace data for 50 traces per query.
Traces retrieved and scanned:
Traces scanned = 100 queries * 75,000 traces per hour * 31 days = 232,500,000 traces scanned per month
Traces retrieved = 100 queries * 50 traces per query * 31 days = 155,000 traces retrieved per month
Total traces retrieved and scanned = 155,000 traces + 232,500,000 traces = 232,655,000 traces retrieved/scanned per month
Billable Traces retrieved and scanned = 232,655,000 traces - 1,000,000 traces in free tier = 231,655,000 traces retrieved and scanned per month
Traces retrieved and scanned charges = 231,655,000 traces * $0.0000005 = $115.82 per month
Total charges for X-Ray tracing = $273.25 traces stored + $115.82 traces scanned/retrieved = $389.07 per month
Total charges: $1,510.84 for Application Signals and SLOs + $389.07 for X-Ray traces = $1,899.91 per monthIn addition, you can use Synthetics and RUM (real user monitoring) with Application Signals. Refer to individual pricing examples for charges.
X-Ray Tracing
If you have an application which receives 2,000 incoming requests per hour and you’re using a 10% sampling rate, then your cost would be calculated as follows:
Traces Recorded
Traces Recorded per Month = 2,000 requests per hour x 24 hours x 31 days x 10% = 148,800 traces
Billable Traces Recorded per Month = 148,800 traces - 100,000 traces in free tier = 48,800 traces
Monthly Traces Recorded Charges = 48,800 traces * $0.000005 = $0.24
In addition, let’s assume you make 100 queries per day each scanning the last hour of data captured (200 traces), and retrieve the full trace data for 50 traces per query.
Traces Retrieved and Scanned
Traces Scanned per Month = 100 queries x 200 traces per hour x 31 days = 620,000 traces
Traces Retrieved per Month = 100 queries x 50 traces per query x 31 days = 155,000 traces
Total Traces Retrieved/Scanned per Month = 155,000 traces + 620,000 traces = 775,000 traces
Billable Traces Retrieved/Scanned per Month = 775,000 traces - 1,000,000 traces in free tier = 0 traces
Monthly Traces Retrieved and Scanned Charges = 0 traces * $0.0000005 = $0In addition, let’s assume you have enabled X-Ray Insights on any or all X-Ray groups.
X-Ray Insights Traces Processed
Traces Recorded per Month = 2,000 requests per hour x 24 hours x 31 days x 10% = 148,800 traces
Monthly Insights Traces Processed Charges = 148,800 traces * $0.000001 = $0.15Your total cost per month for using X-Ray tracing equals $0.24+ $0.15 = $0.39.
By default, X-Ray tracing is enabled at a 5% sampling rate when implementing Application Signals. This default tracing rate can optionally be adjusted higher or lower.
If you monitor 1 application that receives 25,000 requests per minute (inbound service requests) and you are using the default 5% sampling rate, your tracing charges are as follows:
Traces stored:
Traces stored per month = 25,000 requests per minute 43,800 minutes per month 5% sample rate = 54,750,000 traces stored per month
Billable traces stored = 54,750,000 traces stored – 100,000 traces in free tier = 54,650,000 traces stored per month
Traces stored charges = 54,650,000 traces stored * $0.000005 = $273.25 per month
In addition, let's assume you make 100 queries per day, with each query scanning the last hour of data capture compromising 75,000 traces, and retrieve the full trace data for 50 traces per query.
Traces retrieved and scanned:
Traces scanned = 100 queries 75,000 traces per hour 31 days = 232,500,000 traces scanned per month
Traces retrieved = 100 queries 50 traces per query 31 days = 155,000 traces retrieved per month
Total traces retrieved and scanned = 155,000 traces + 232,500,000 traces = 232,655,000 traces retrieved/scanned per month
Billable Traces retrieved and scanned = 232,655,000 traces - 1,000,000 traces in free tier = 231,655,000 traces retrieved and scanned per month
Traces retrieved and scanned charges = 231,655,000 traces * $0.0000005 = $115.82 per month
Total charges for X-Ray tracing = $273.25 traces stored + $115.82 traces scanned/retrieved = $389.07 per month
Total charges: $1,510.84 for Application Signals and SLOs + $389.07 for X-Ray traces = $1,899.91 per month
In addition, you can use Synthetics and RUM (real user monitoring) with Application Signals. Refer to individual pricing examples for charges.
If you monitor an application that contains APIs (using Amazon API Gateway), 1 container cluster with 10 nodes or Amazon EC2 instances, 20 pods, 5 unique service names, and 1 namespace, 3 Lambda functions, and 1 DynamoDB table, your charges would be as follows:
CloudWatch metrics
APIs, Lambdas, and DynamoDB: Metrics from these AWS services are available with no additional charge.Kubernetes: As described in Example 7, there is a predefined number of metrics reported for every cluster, node, pod, and service (to learn more, see Kubernetes on AWS). Every cluster reports 24 metrics; every node reports 8 metrics; every pod reports 9 metrics; and every service reports 6 metrics. CloudWatch metrics are aggregated by pod, service, and namespace using their name. Increasing the count of running instances will not impact the count of CloudWatch metrics generated. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics per cluster
= 24 cluster metrics + (10 nodes or EC2 instances * 8 node metrics) + (20 unique pod names * 9 pod metrics * 1 namespace) + (5 unique service names * 6 service metrics * 1 namespace) + (1 unique namespace * 6 namespace metrics)
= 24 + (10 * 8) + (20 * 9 * 1) + (5 * 6 * 1) + (1 * 6) = 24 + 80 + 180 + 30 + 6 = 320 CloudWatch metricsMonthly CloudWatch metrics costs = $0.30 per metric for first 10,000 metrics * 320 metrics = $96. Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
CloudWatch Logs
APIs and Lambdas: For API Gateway Logs or Lambda Logs ingested in CloudWatch, the Monthly ingested logs costs = $0.50 per GB of ingested logs * 50 GB of performance events as CloudWatch Logs = $25 per month.AWS X-Ray
If the application receives 2,000 incoming requests per hour and you’re using a 10% sampling rate, then your cost would be calculated as follows:Traces Recorded
Traces Recorded per Month = 2,000 requests per hour x 24 hours x 31 days x 10% = 148,800 traces
Billable Traces Recorded per Month = 148,800 traces - 100,000 traces in free tier = 48,800 traces
Monthly Traces Recorded Charges = 48,800 traces * $0.000005 = $0.24In addition, let’s assume you make 100 queries scanning each hour of data captured (200 traces), and retrieve the full trace data for 50 traces per query.
Traces Retrieved and Scanned
Traces Scanned per Month = 100 queries x 200 traces per hour x 31 days = 620,000 traces
Traces Retrieved per Month = 100 queries x 50 traces per query x 31 days = 155,000 traces
Total Traces Retrieved/Scanned per Month = 155,000 traces + 620,000 traces = 775,000 traces
Since the first 1,000,000 traces retrieved or scanned each month are free with AWS X-Ray, it costs $0 to retrieve and scan 775,000 traces.Your total cost per month for using AWS X-Ray equals $0.24 for traces recorded.
Monthly monitoring costs = $96 + 25+ $4.23 + $0.24 = $125.47 per month.
Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
-
Example 15 – Monitoring with contributor insights
Example 15 - Application Signals and Transaction Search (includes "golden metrics" and complete visibility into application transaction spans)
Example 15 - Application observability: X-Ray tracing
This example assumes that you are not using the first time free trial (learn more about free trail in AWS Free Tier above).
If you monitor an application that generates 72 TB of spans per month, and index 2% of spans ingested.
Monthly Ingested charges
0 to 10TB @$0.35 per GB = 10 * 1,024 * $0.35 = $3,584.00
10TB to 30TB @$0.20 per GB = 20 * 1,024 * $0.20 = $4,096.00
30TB to 72TB @$0.15 per GB = 42 * 1,024 * $0.15 = $6,451.20
Total Ingestion Charges = $3,584 + $4,096 + $6,451.2 = $14,131.20 per month
Monthly Indexed charges
Assuming 1 span = ~1kB, 72 TB translates to 72B spans per month. Since you are indexing only 2%, this translates to 1.44B spans. Since 1% of spans indexed are included in the monthly ingested charges, you only pay for 1% of 720M spans per month, instead of full 2% of 1.44B spans.
720M @$0.75 per million spans indexed = 720M * $0.75 = $540 per month
Total charges
$14,131.20 + $540 = $14,671.2 per month
If you monitor an application that generates 10 TB of spans per month, 18 TB of Embedded metric format (EMF) log records as application metrics and indexes 1% of spans as trace summaries, the total GB ingested is 28TB (10+18).
Monthly Ingested charges
0 to 10TB @$0.35 per GB = 10 * 1,024 * $0.35 = $3,584.00
10TB to 30TB @$0.20 per GB = 18 * 1,024 * $0.20 = $3,686.00
Total Ingestion Charges = $3,584 + $3,686 = $7,270 per month
Monthly Indexed spans charges
No charges for indexed spans since 1% of spans indexed are included in the pricing model.
Note: Spans ingested as logs will not incur log ingestion pricing
X-Ray Tracing
If you have an application which receives 2,000 incoming requests per hour and you’re using a 10% sampling rate, then your cost would be calculated as follows:
Traces Recorded
Traces Recorded per Month = 2,000 requests per hour x 24 hours x 31 days x 10% = 148,800 traces
Billable Traces Recorded per Month = 148,800 traces - 100,000 traces in free tier = 48,800 traces
Monthly Traces Recorded Charges = 48,800 traces * $0.000005 = $0.24
In addition, let’s assume you make 100 queries per day each scanning the last hour of data captured (200 traces), and retrieve the full trace data for 50 traces per query.
Traces Retrieved and Scanned
Traces Scanned per Month = 100 queries x 200 traces per hour x 31 days = 620,000 traces
Traces Retrieved per Month = 100 queries x 50 traces per query x 31 days = 155,000 traces
Total Traces Retrieved/Scanned per Month = 155,000 traces + 620,000 traces = 775,000 traces
Billable Traces Retrieved/Scanned per Month = 775,000 traces - 1,000,000 traces in free tier = 0 traces
Monthly Traces Retrieved and Scanned Charges = 0 traces * $0.0000005 = $0In addition, let’s assume you have enabled X-Ray Insights on any or all X-Ray groups.
X-Ray Insights Traces Processed
Traces Recorded per Month = 2,000 requests per hour x 24 hours x 31 days x 10% = 148,800 traces
Monthly Insights Traces Processed Charges = 148,800 traces * $0.000001 = $0.15Your total cost per month for using X-Ray tracing equals $0.24+ $0.15 = $0.39.
By default, X-Ray tracing is enabled at a 5% sampling rate when implementing Application Signals. This default tracing rate can optionally be adjusted higher or lower.
If you monitor 1 application that receives 25,000 requests per minute (inbound service requests) and you are using the default 5% sampling rate, your tracing charges are as follows:
Traces stored:
Traces stored per month = 25,000 requests per minute 43,800 minutes per month 5% sample rate = 54,750,000 traces stored per month
Billable traces stored = 54,750,000 traces stored – 100,000 traces in free tier = 54,650,000 traces stored per month
Traces stored charges = 54,650,000 traces stored * $0.000005 = $273.25 per month
In addition, let's assume you make 100 queries per day, with each query scanning the last hour of data capture compromising 75,000 traces, and retrieve the full trace data for 50 traces per query.
Traces retrieved and scanned:
Traces scanned = 100 queries 75,000 traces per hour 31 days = 232,500,000 traces scanned per month
Traces retrieved = 100 queries 50 traces per query 31 days = 155,000 traces retrieved per month
Total traces retrieved and scanned = 155,000 traces + 232,500,000 traces = 232,655,000 traces retrieved/scanned per month
Billable Traces retrieved and scanned = 232,655,000 traces - 1,000,000 traces in free tier = 231,655,000 traces retrieved and scanned per month
Traces retrieved and scanned charges = 231,655,000 traces * $0.0000005 = $115.82 per month
Total charges for X-Ray tracing = $273.25 traces stored + $115.82 traces scanned/retrieved = $389.07 per month
Total charges: $1,510.84 for Application Signals and SLOs + $389.07 for X-Ray traces = $1,899.91 per month
In addition, you can use Synthetics and RUM (real user monitoring) with Application Signals. Refer to individual pricing examples for charges.
-
Example 16 - Application Signals (includes "golden metrics", no visibility into application transaction spans)
Example 16 – Application observability: End user monitoring with Synthetics
Application Signals:
If you monitor an application that receives 25,000 requests per minute (inbound service requests), and for each inbound request, the application makes 2 requests to dependencies (outbound dependency requests), your charges would be as follows:
Application Signals for inbound service requests: 25,000 requests per minute * 43,800 minutes in a month = 1,095,000,000 Application Signals per month
Application Signals for outbound dependency requests: 25,000 requests per minute * 2 outbound dependency requests * 43,800 minutes in a month = 2,190,000,000 Application Signals per month
Total Application Signals from requests = 1,095,000,000 + 2,190,000,000 = 3,285,000,000 Application Signals per month
Service Level Objectives (SLOs):
Each service level objective (SLO) generates two Application Signals per SLI metric period. If you create 10 SLOs with a 1-minute SLI metric period, 10 SLOs with a 5-minute SLI metric period, and 10 SLOs with a 10-minute SLI metric period, your total number of application signals would be as follows:
Application Signals for SLOs with 1-minute SLI metric period: (10 SLOs * 2 Application Signals 43,800 minutes in a month) / 1-minute SLI metric period = 876,000 Application Signals per month
Application Signals for SLOs with 5-minute SLI metric period: (10 SLOs * 2 Application Signals * 43,800 minutes in a month) / 5-minute SLI metric period = 175,200 Application Signals per month
Application Signals for SLOs with 10-minute SLI metric period: (10 SLOs x 2 ApplicationSignals x 43,800 minutes in a month) / 10-minute SLI metric period = 87,600 Application Signals per month
Total Application Signals from SLOs: 876,000 + 175,200 + 87,600 = 1,138,800 Application Signals per month
Total number of Application Signals from requests and SLOs = 3,285,000,000 + 1,138,800 = 3,286,138,800 Application Signals per month
Total charges for Application Signals:
First 100 million signals * $1.50 per 1 million Application Signals = $150
Next 900 millionsignals * $0.75 per 1 million per month Application Signals = $675
Remaining 2,286,138,800 signals * $0.30 per 1 million per month Application Signals = $685.84Total charges for Application Signals & SLOs = $150 + $675 + $685.84 = $1,510.84 per month
X-Ray traces:
By default, X-Ray tracing is enabled at a 5% sampling rate when implementing Application Signals. This default tracing rate can optionally be adjusted higher or lower.
If you monitor 1 application that receives 25,000 requests per minute (inbound service requests) and you are using the default 5% sampling rate, your tracing charges are as follows:
Traces stored:
Traces stored per month = 25,000 requests per minute * 43,800 minutes per month * 5% sample rate = 54,750,000 traces stored per month
Billable traces stored = 54,750,000 traces stored – 100,000 traces in free tier = 54,650,000 traces stored per month
Traces stored charges = 54,650,000 traces stored * $0.000005 = $273.25 per month
In addition, let's assume you make 100 queries per day, with each query scanning the last hour of data capture compromising 75,000 traces, and retrieve the full trace data for 50 traces per query.
Traces retrieved and scanned:
Traces scanned = 100 queries * 75,000 traces per hour * 31 days = 232,500,000 traces scanned per month
Traces retrieved = 100 queries * 50 traces per query * 31 days = 155,000 traces retrieved per month
Total traces retrieved and scanned = 155,000 traces + 232,500,000 traces = 232,655,000 traces retrieved/scanned per month
Billable Traces retrieved and scanned = 232,655,000 traces - 1,000,000 traces in free tier = 231,655,000 traces retrieved and scanned per month
Traces retrieved and scanned charges = 231,655,000 traces * $0.0000005 = $115.82 per month
Total charges for X-Ray tracing = $273.25 traces stored + $115.82 traces scanned/retrieved = $389.07 per month
Total charges: $1,510.84 for Application Signals and SLOs + $389.07 for X-Ray traces = $1,899.91 per monthIn addition, you can use Synthetics and RUM (real user monitoring) with Application Signals. Refer to individual pricing examples for charges.
If you create 5 canaries that run once every 5 minutes, add alarms on 5 of the metrics generated by the canaries, and store the data for 1 month, your monthly bill will be calculated as follows:
5 canaries * 12 runs per hour * 24 hours per day * 31 days per month = 44,640 canary runs
Monthly CloudWatch charges
Canary run charges = 44,640 canary runs * $0.0012 per canary run = $53.57 per month
5 alarms per month = 5 * $0.10 = $0.50 per month
Total monthly CloudWatch charges = $53.57 + $0.50 = $54.07Monthly additional charges
Each canary run also runs an AWS Lambda function, writes logs and results to CloudWatch Logs and the designated Amazon S3 bucket, and creates CloudWatch custom metrics. For details on AWS service pricing such as AWS Lambda, Amazon S3, CloudWatch Logs, and CloudWatch Metrics see the pricing section of the relevant AWS service detail pages.
Lambda charges = requests charges + duration charges
= requests from 44,640 runs * $0.2 per 1,000,000 + duration of 20 seconds * 44,640 canary runs * 1 GB memory size * $0.000016667 per GB per sec
= $0.01 + $14.88 = $14.89 per monthCloudWatch Logs charges = collection charges + storage charges
= collection of 0.00015 GB per run * 44,640 runs * $0.5 per GB + storage of 0.00015 GB per run* 44,640 canary runs * $0.03 per GB per month
= $3.35 + $0.20 = $3.55 per monthS3 charges = put request charges + storage charges
= put requests of 44,640 runs * $0.005 per 1,000 requests + storage of 0.001 GB per run * 44,640 canary runs * 1 month * $0.023 per GB per month
= $0.22 + $1.03 = $1.25 per monthCloudWatch Metrics charges = 3 CloudWatch Metrics (SuccessPercent, Duration, Failed) = 3 metrics x $0.30 per metric per month = $0.90 per month
You can choose to configure additional metrics in your canary scripts: executeHttpStep() and executeStep() metrics and will be charged at custom CloudWatch Metrics rates.
Additional monthly charges = $14.89 + $3.55 + $1.25 + $0.90 = $20.59 per month
Total monthly charges = $54.07 + $20.59 = $74.66
Pricing values displayed here are based on US East Regions. Please refer to pricing tabs for most current pricing information for your respective Region(s).
-
Example 17 – End user monitoring with Synthetics
Example 17 – Application observability: CloudWatch RUM for web and mobile applications
If you create 5 canaries that run once every 5 minutes, add alarms on 5 of the metrics generated by the canaries, and store the data for 1 month, your monthly bill will be calculated as follows:
5 canaries * 12 runs per hour * 24 hours per day * 31 days per month = 44,640 canary runs
Monthly CloudWatch charges
Canary run charges = 44,640 canary runs * $0.0012 per canary run = $53.57 per month
5 alarms per month = 5 * $0.10 = $0.50 per month
Total monthly CloudWatch charges = $53.57 + $0.50 = $54.07Monthly additional charges
Each canary run also runs an AWS Lambda function, writes logs and results to CloudWatch Logs and the designated Amazon S3 bucket, and creates CloudWatch custom metrics. For details on AWS service pricing such as AWS Lambda, Amazon S3, CloudWatch Logs, and CloudWatch Metrics see the pricing section of the relevant AWS service detail pages.
Lambda charges = requests charges + duration charges
= requests from 44,640 runs * $0.2 per 1,000,000 + duration of 20 seconds * 44,640 canary runs * 1 GB memory size * $0.000016667 per GB per sec
= $0.01 + $14.88 = $14.89 per monthCloudWatch Logs charges = collection charges + storage charges
= collection of 0.00015 GB per run * 44,640 runs * $0.5 per GB + storage of 0.00015 GB per run* 44,640 canary runs * $0.03 per GB per month
= $3.35 + $0.20 = $3.55 per monthS3 charges = put request charges + storage charges
= put requests of 44,640 runs * $0.005 per 1,000 requests + storage of 0.001 GB per run * 44,640 canary runs * 1 month * $0.023 per GB per month
= $0.22 + $1.03 = $1.25 per monthCloudWatch Metrics charges = 3 CloudWatch Metrics (SuccessPercent, Duration, Failed) = 3 metrics x $0.30 per metric per month = $0.90 per month
You can choose to configure additional metrics in your canary scripts: executeHttpStep() and executeStep() metrics and will be charged at custom CloudWatch Metrics rates.
Additional monthly charges = $14.89 + $3.55 + $1.25 + $0.90 = $20.59 per month
Total monthly charges = $54.07 + $20.59 = $74.66
Pricing values displayed here are based on US East Regions. Please refer to pricing tabs for most current pricing information for your respective Region(s).
If your web application has 500,000 visits in a month, and you’re collecting RUM events at 100% sampling for page load performance and errors with 20 data events — including one start event, one page view event, and 10 performance events (three web vitals, one paint, one navigation, five resource loads), and eight errors per visit — your charges would be as follows:
Total number of RUM web events = 20 data events/visit * 500,000 visits = 10,000,000 events
Charges for 10,000,000 RUM web events @ $1 per 100,000 events = 10,000,000* $1/100,000 = $100Monthly RUM web events charges = $100 per month
If your mobile application has 2 million user sessions per month, and you're collecting RUM OpenTelemetry (OTEL) spans and events with 70 events and spans per session — which typically includes one app start event, one screen view event, 30 performance events (three core vitals, one render event, one navigation event, 25 resource loads), and 38 errors per session. Assuming size of each event or span is 1Kb — your charges would be as follows:
Total number of RUM OTEL events and spans = 70 events and spans/session × 2,000,000 sessions x 1Kb per event or span = 140 GB of data ingested.
Charges for 140 GB of RUM mobile events and spans ingested @ $0.35 per GB = 140 GB × $0.35/GB = $49.00 per monthMonthly RUM mobile data ingested charges = $49.00 per month
Total RUM charges for web and mobile monitoring = $100/month for web + $49/month for mobile = $149/month
-
Example 18 - Container Insights for Amazon EKS and Kubernetes (with & without enhanced observability)
Example 18 – Alarming with composite alarms
1/Container Insights with enhanced observability for Amazon EKS
When using Container Insights with enhanced observability, you will be charged based on the number of observations across your container environment where the total number of observations ingested is dependent on your container set-up including the number of container components. Assume a set-up where you monitor 1 cluster with 10 nodes, 1 namespace, 5 unique service names, 16 workloads, 20 pods, and 20 containers and the data points are reported for the entire month.
There is an average number of observations ingested per minute for each EKS container component. Every cluster reports 1,720 observations; every node reports 68 observations; every namespace reports 2 observations; every service reports 2 observations; every workload reports 7 observations; every pod reports 138 observations and every container reports 21 observations per minute on average.
With a monitoring charge as follows:
Total number of monthly Container Insights observations
= [ (1 cluster * 1,720 observations) + (10 nodes * 68 obs) + (1 namespace * 2 obs) + (5 services * 2 observations) + (16 workloads * 7 observations) + (20 pods * 138 observations) + (20 containers * 21 observations)] * 60 mins * 24 hrs * 30 days
= [ 1,720 + 680 + 2 + 10 + 112 + 2760 + 420] * 43,200 mins/month = 246,412,800 observations per monthYour monthly Container Insights bill = 246,412,800 * $0.21 / 1M Observations = $51.75
Once you exceed 1B observations per month then volume pricing tiers will apply respectively.
Additionally, all container logs are collected by default. Container Insights adds 700 bytes per log line for the metadata required to enable filtering. Container logs will continue to be charged based on standard CloudWatch logs ingestion and logs storage pricing.
2/Container Insights without enhanced observability for Amazon EKS and Kubernetes
If you are monitoring 1 container cluster with 10 nodes or Amazon EC2 instances, 20 pods, 5 unique service names, and 1 namespace, your charges for the aggregated cluster and service-level metrics would be as followed:
CloudWatch metrics
There is a predefined number of metrics reported for every cluster, node, pod, and service. Every cluster reports 24 metrics; every node reports 8 metrics; every pod reports 9 metrics; and every service reports 6 metrics. CloudWatch metrics are aggregated by pod, service, and namespace using their name. Increasing the count of running instances will not impact the count of CloudWatch metrics generated. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics per cluster
= 24 cluster metrics + (10 nodes or EC2 instances * 8 node metrics) + (20 unique pod names * 9 pod metrics * 1 namespace) + (5 unique service names * 6 service metrics * 1 namespace) + (1 unique namespace * 6 namespace metrics)
= 24 + (10 * 8) + (20 * 9 * 1) + (5 * 6 * 1) + (1 * 6) = 320 CloudWatch metricsMonthly CloudWatch metrics costs = $0.30 per metric for first 10,000 metrics * 320 metrics = $96
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
CloudWatch Logs
In this example, we assume an average size for Kubernetes logs ingested per month for each EKS container component, as follows. Every cluster reports 0.01621 GB logs; every namespace reports 0.0185 GB logs; every service reports 0.02182 GB logs; every node reports 0.21365 GB logs and every pod reports 0.45845 GB logs per month on average.
The cost of logs ingested will vary based on names used for your cluster, container, pod, service, instance names, labels, etc.
Monthly GB of CloudWatch Logs ingested = (1 cluster * 0.01621 GB) + (1 namespace * 0.0185 GB) + (5 services * 0.02182 GB) + (10 nodes * 0.21365 GB) + (20 pods * 0.45845 GB) = 11.45 GB per month
Monthly ingested logs costs = $0.50 per GB of ingested logs * 11.45 GB of performance events as CloudWatch Logs = $5.73 per month
Monthly CloudWatch costs = $96 + $5.73 = $101.73 per month
Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
If you are using container logs, Container Insights adds 700 bytes per log line for the metadata required to enable filtering. Container logs will continue to be charged based on standard CloudWatch logs ingestion and logs storage pricing.
Composite alarms can combine any type of CloudWatch alarm. Metric alarms are billed based on the number of metrics per alarm, while composite alarms are billed per alarm unit. One composite alarm costs $0.50 per month, regardless of the number of metric alarms it combines.
If you create one composite alarm that combines four standard resolution metric alarms, your monthly bill is calculated as follows:
Four standard resolution alarms = $0.10 per alarm metric * 4 = $0.40 per month
One composite alarm = $0.50 per month
Monthly CloudWatch charges = $0.40 + $0.50 = $0.90 per month
-
Example 19 – CloudWatch alarms with Metrics Insights queries and monthly cost prorating
Example 19 – S3 Request Metrics
Example 19 - Container Insights for Amazon ECS (with & without enhanced observability)
With AWS, you build an application that runs 24/7 for several months and uses autoscaled EC2 instances. You monitor your EC2 instances with a Metrics Insights query to get alerted when the average of CPU usage across all your EC2 instances goes above an 80% threshold.
In the month of July, your application consistently uses 3 instances.
In the month of August, your application scales up to 4 instances on the 16th August at 00:00 UTC and keeps on using 4 instances until the end of the month.
To calculate monthly costs for alarms
In July (which is a 31 day month), you use your alarm continuously every day. The math expression shows how to calculate the monthly cost for a standard-resolution alarm retrieving the average from 3 metrics through a Metrics Insights query.1 (alarm) x 3 (number of metrics analyzed by the Metrics Insights query) x $0.10 (cost per metric analyzed per alarm) = $0.30
The total cost of this alarm for July is $0.30.
To calculate monthly prorated costs for alarms
In August (which is a 31-day month), you use your alarm continuously every day. The math expression shows how to calculate the monthly cost for a standard-resolution alarm retrieving the average from 3 metrics through a Metrics Insights query for 15 days, then retrieving the average from 4 metrics through a Metrics Insights query for 16 days.For 360 hours (from the 1st day at 00:00 UTC to the 15th day at 23:59 UTC), your standard-resolution alarm evaluates the average from 3 metrics through a Metrics Insights query, the costs for that period are:
1 (alarm) x 3 (number of metrics analyzed by the Metrics Insights query) x 360 / 744 (pro-rating on the number of hours in the month) x $0.10 (cost per metric analyzed per alarm) = $0.15
For 384 hours (from the 16th day at 00:00 UTC to the 31st day at 23:59 UTC), your standard-resolution alarm evaluates the average from 4 metrics through a Metrics Insights query, the costs for that period are:
1 (alarm) x 4 (number of metrics analyzed by the Metrics Insights query) x 384 / 744 (pro-rating on the number of hours in the month) x $0.10 (cost per metric analyzed per alarm) = $0.21
The total cost of this alarm for August is $0.15 + $0.21 = $0.36.
Please note that all alarms costs are prorated, regardless of whether they use a Metrics Insight query or not. You can apply the same pro-rating logic to project the cost for an alarm that is created, deleted, or modified to add or remove metrics, during the month.
Amazon S3 Request Metrics allow you to quickly identify and act on operational issues. There are 16 available metrics that you can configure filters for, identified by a shared prefix or object tag, and only monitor a subset of objects. The filters align your metrics to specific business applications, workflows, or internal organizations. The activity on the bucket determines which metrics are generated, so all 16 metrics may not necessarily be published every hour of the day.
For example, let’s take an application that performs a backup routine every day and completes within a single hour. Because the application only makes PUT requests to S3, a subset of metrics, such as AllRequests, PutRequests, TotalRequestLatency, and BytesUploaded, are generated; metrics related to other types of operations, such as DeleteRequests, SelectRequests, and SelectReturnedBytes, would not be generated. For our example, we will assume 8 out of the 16 available metrics are generated – detailed list of metrics available in Amazon S3 documentation. Assuming the routine starts and finishes within the same hour, the charges to generate and publish these metrics to CloudWatch are:
Total number of metrics = 8
Total hours of metrics published = 1 hour per day for 30 days (assuming example month has 30 days) = 1 * 30 = 30 hours per month
Total hours per month = 30 days * 24 hours = 720 hours per month
First 10,000 custom metrics @$0.30 per metric = $0.30 * 8 (number of metrics) * 30 (metric hours per month) per 720 (hours per month) = $0.10 per month.Monthly CloudWatch charges for S3 Request Metrics = $0.10 per month
Once you exceed 10,000 total metrics then volume pricing tiers will apply based on the pricing table above.1/Container Insights with enhanced observability for Amazon ECS
When using Container Insights with enhanced observability, you will be charged based on the number of metrics ingested across your container environment where this number is dependent on your container set-up including the number of container components. Assume a set-up where you monitor 1 container cluster with 5 unique service names, 10 unique task names with 20 unique task ids, and 50 average running containers, your charges would be as follows:
There is a predefined number of metrics reported for every cluster, task, service, and containers running on Fargate. Every cluster reports 29 metrics; every service reports 31 metrics; every task definition reports 26 metrics; every task reports 26 metrics, and every container reports 26 metrics. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics
= (29 cluster metrics * 1 unique cluster name) + (31 service metrics * 5 unique service names) + (26 task definition metrics * 10 unique task names) + (26 task metrics * 20 unique task ids) + (26 container metrics * 50 unique container ids)
= (29 * 1) + (31 * 5) + (26 * 10) + (26 * 20) + (26 * 50)
= 2,264 CloudWatch metricsMonthly CloudWatch metrics costs = $0.07 per metric * 2,264 metrics = $158.48
If you are using container logs, they will be charged based on standard CloudWatch logs ingestion and logs storage pricing. Note that Container Insights adds 700 bytes per log line for the metadata required to enable filtering.
For ECS clusters running on EC2, every cluster reports 24 metrics; every service reports 26 metrics; every task definition reports 21 metrics; every task reports 22 metrics and every container reports 20 metrics.
2/Container Insights without enhanced observability for Amazon ECS
Container Insights offers Amazon ECS monitoring by providing aggregated metrics at the cluster and service level. If you monitor 1 container cluster with 5 unique service names, 10 unique task names, and 50 average running containers, your costs would be as follows:
CloudWatch metrics
There is a predefined number of metrics reported for every cluster, task, and service running on Fargate. Every cluster reports 13 metrics; every service reports 15 metrics; and every task reports 10 metrics. CloudWatch metrics are aggregated by task and service using their name. Increasing the count of running instances or containers will not impact the count of CloudWatch metrics generated. All CloudWatch metrics are prorated on an hourly basis. This example assumes that data points are reported for the entire month.
Monthly number of CloudWatch metrics
= (13 cluster metrics * 1 unique cluster) + (15 service metrics * 5 unique service names) + (10 task metrics * 10 unique task names)
= (13 * 1) + (15 * 5) + (10 * 10)
= 188 CloudWatch metricsMonthly CloudWatch metrics costs = $0.30 per metric for first 10,000 metrics * 188 metrics = $56.40.
Once you exceed 10,000 total metrics then volume pricing tiers will apply - see metrics pricing table for details.
For ECS clusters running on EC2, every cluster reports 11 metrics; every service reports 13 metrics; and every task reports 8 metrics.
CloudWatch Logs
For Amazon ECS, there is an assumed average logs size ingested for every cluster, service, task, and container. Every cluster reports 0.0181 GB logs; every service reports 0.02816 GB logs; every task reports 0.06437 GB logs and every container reports 0.04426 GB logs per month on average.
The cost of logs ingested will vary based on names used for your cluster, container, pod, service, instance names, labels, etc.
Monthly GB of CloudWatch Logs ingested = (1 cluster * 0.0181 GB) + (5 services * 0.02816 GB) + (10 task names * 0.06437 GB) + (50 containers * 0.04426 GB) = 3.02 GB per month
Monthly ingested logs costs = $0.50 per GB of ingested logs * 3.02 GB of performance events as CloudWatch Logs = $1.51 per month
Monthly CloudWatch costs = $56.40 + $1.51 = $57.91 per month.
Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
If you are using container logs, Container Insights adds 700 bytes per log line for the metadata required to enable filtering. Container logs will continue to be charged based on standard CloudWatch logs ingestion and logs storage pricing.
-
Example 20 - Application Signals and Transaction Search (includes "golden metrics" and complete visibility into application transaction spans)
Example 20 – Monitoring with Lambda Insights
Example 20 - Database Insights
Example 20 – Monitoring with Contributor Insights
If you monitor 1 Lambda function that is invoked 1M times per month, your costs would be as follows:
CloudWatch metrics
There is a predefined number of metrics reported for every function. Every function reports 8 metrics. CloudWatch metrics are aggregated by function using their name. All CloudWatch metrics are prorated on an hourly basis. If your function is invoked less than once per hour, your function will only be billed for the hours that it is invoked.Monthly number of CloudWatch metrics per function
= 8 metrics * 1 function
= 8 CloudWatch metricsMonthly CloudWatch metrics costs = $0.30 per metric for first 10,000 metrics * 8 metrics = $2.40
Once you exceed 10,000 total metrics in your account then volume pricing tiers will apply. See metrics pricing table for details.
CloudWatch Logs
A single log event is generated for each function invoke. The size of each log event is approximately 1.1 KB.Monthly GB of CloudWatch Logs ingested = (1.1 KB/1024/1024) GB * 1,000,000 invokes per month = 1.05 GB per month
Monthly ingested logs costs = $0.50 per GB of ingested logs * 1.05 GB of performance events as CloudWatch Logs = $0.52 per month
Monthly CloudWatch costs = $2.40 + $0.52 = $2.92 per month
There are no minimum fees or mandatory service usage. If the function is not invoked, you do not pay.
Pricing values displayed here are based on the US East (N. Virginia) AWS Region. Please refer to the pricing information for your Region.
The Advanced mode of Database Insights is priced at $0.0125 per vCPU-hour for each provisioned instance, and $0.003125 per ACU-hour for each Aurora Serverless v2 instance in an Aurora cluster. For both Aurora and RDS databases, you can enable the Advanced mode of Database Insights at the cluster level, but not individually for each instance.
Below is an example for an Aurora Cluster that has one provisioned writer (db.r5.xlarge) and two Serverless v2 reader instances. In this case, the calculation of your monthly charges will be determined as follows:- Total vCPU count = (vCPU count of db.r5.xlarge × 1) = (4 × 1) = 4
- Total ACU count = Sum of average ACU usage for 2 reader instances (assuming the ACU usage of 10 and 22 for the 2 Aurora Serverlss v2 instances) = 10 + 22 = 32
- Monthly Charges = (Total vCPU usage × hourly vCPU rate for the Advanced mode of Database Insights × number of hours in the month) + (Total ACU usage × hourly ACU rate for the Advanced mode of Database Insights × number of hours in the month) = (4 × 0.0125 × 720) + (32 x 0.003125 x 720) = $108
- Usage of this feature is metered by the hour, and the partial hours are rounded up.
- Pricing does not depend on the actual amount of performance data stored.
- If you switch to the Standard mode of Database Insights, performance data older than seven days is deleted.
If you are monitoring Amazon VPC Flow Logs with a volume of 225 billion Log Events to CloudWatch Logs per month, and you have three Contributor Insights rules that match 100 percent, 50 percent, and 10 percent of these log events respectively, your charges will be as follows:
Rule charges
Total number of rules = 3 rules
First Contributor Insights rule = $0
2 Contributor Insights rules @ $0.50 per rule = $1.00Matched Log events
Total Number of Matched Log Events = (225B * 100%) + (225 * 50%) + (225B * 10%) = 225B + 112.5B + 22.5B = 360 Billion
0 to 1 million matched log events = $0
1M to 360B matched log events = 359,999M * $0.02 = $7,200Monthly CloudWatch charges = $1.00 + $7,200 = $7,201
-
Example 21 – CloudWatch RUM
Example 21 – Metric Streams
Example 21 - Network Monitoring
CloudWatch Network Monitoring with flow monitoring for EC2
Let’s imagine you are a retail company that wants to monitor network performance for a payment collection workload. The payment collection workload is deployed on 30 EC2 instances in a single VPC. You are interested in deploying flow monitoring across all these instances. Your monthly Flow monitoring charges are as follows:1. Monitored resource charges:
30 days * 24 hours = 720 hours
Total number of monitored resources = 30 EC2 instances = 30 monitored resources
Since we offer 10 monitored resources for free for the first 12 months, you will be charged for the remaining = 30-10 = 20 monitored resources
20 monitored resources at $0.0069 per monitored resource per hour = 20 * $0.0069 = $0.138 * 720 hours = $99.36 per month2. CloudWatch metrics charges:
Let’s assume you create 5 monitors to monitor workloads running on these 30 instances. Each monitor vends 5 CloudWatch metrics.
Total number of metrics: 5 monitors * 5 metrics per monitor = 25 metrics
Total CloudWatch charges for metrics: 25 metrics * $0.30/metric/month = $7.5 per month
Total charge for flow monitoring in this example: $99.36 + $7.5 = $106.86 per monthCloudWatch Network Monitoring with flow monitoring for EKS container network observability
Turning on container network observability will create 1 agent for each Kubernetes worker node, and create 1 flow monitor that vends 5 CloudWatch metrics.Monthly usage: 30 days * 24 hours = 720 hours
EKS cluster with 50 nodes
CloudWatch charges for metrics: 5 metrics * $0.30/metric/month = $1.50 per month
Charges for flow monitoring: 50 nodes * $0.0069 per monitored resource per hour = $0.345 * 720 hours = $248.40 per month
Total charge for Network Monitoring with flow monitoring for EKS container network observability: $1.50 + $248.40 = $249.90 per monthEKS cluster with 1500 nodes
CloudWatch charges for metrics: 5 metrics * $0.30/metric/month = $1.50 per month
Charges for flow monitoring: 1500 nodes * $0.0069 per monitored resource per hour = 10.35 * 720 hours = $7,452 per month
Total charge for Container Network Observability for EKS: $1.50 + $7,452 = $7453.50 per monthCloudWatch Network Monitoring with internet monitoring
If you add 10 CloudFront distributions and 20 Virtual Private Clouds (VPCs) to a monitor for monitoring 45,000 city-networks, your charges will be as follows:1. Monitored resource charges:
30 days * 24 hours = 720 hours
Total number of monitored resources = 10 CloudFront distributions + 20 VPCs = 30
30 monitored resources at $0.01 per monitored resource per hour = 30 * $0.01 = $0.30 per hour = $0.30 * 720 hours per month = $216 per month2. Monitored city-network charges:
Total monitored city-networks = 45,000, First 100 city-networks = $0
Total monitored city-networks per month = 45,000 per hour * 720 hours/month = 32,400,000 city-network hours/month
First 100 city-networks per hour, total per month (flat value every month) = 72,000 city-network hours/month
Total billed city-network hours/month = 32,400,000 city-network hours/month - 72,000 city-network hours/month = 32,328,000 city-networks hours/month
32,328,000 city-networks hours/month at $0.74 per 10,000 city-networks per hour = 32,328,000 * $0.000074 = $2392.27 per month3. CloudWatch Logs charges:
Out of 45,000 city-networks, Internet monitoring would only publish CloudWatch Logs for the top 500 city-networks which is less than 500 MB log data per day, or (500 MB * 30) = 15 GB of data per month. If you exclude the free coverage (example: 5 GB), the remaining log data you're charged for would be 10 GB (15 GB - 5 GB). If the fee per GB was $0.50 per month, a reasonable example, your monthly charges for CloudWatch Logs would be under $0.50 * 10 GB = $5 per month.
Total charge for internet monitoring in this example: $216 + $2392.27 + $5 = $2,613.27 per monthCloudWatch Network Monitoring with synthetic monitoring
Let's imagine you are a financial institution that wants to monitor the performance of your trading applications using Synthetic monitoring. For resilience, you have distributed your application across three Availability Zones, mapping to three subnets. Your infrastructure connects to eight on-premises IP addresses via redundant AWS Direct Connect links. Your monthly bill for using synthetic monitoring in US East (N. Virginia) would be calculated as follows:1. Monitored resource charges:
30 days * 24hrs = 720 hours
Total number of VPC subnets: 3
Total number of on-premises destinations accessible from each VPC subnet: 8
3 VPC subnets to the first 4 destinations at $0.10 per monitored resource per hour = 3 * 720 hours * $0.10 = $216 per month
Multiplied by 2 to account for 8 destinations = $216 * 2 = $432 per month2. CloudWatch metrics charges:
For each probe Synthetic monitoring vends 3 CloudWatch metrics
Number of monitored probes: 3 subnets * 8 destination IP addresses = 24 probes
Total number of metrics: 24 probes * 3 metrics per probe = 72 metrics
Total CloudWatch charges for metrics: 72 metrics * $0.30/metric/month = $21.60 per month
Total charge for synthetic monitoring in this example: $432 + $21.60 = $453.60 per monthIf your application has 500,000 visits in a month, and you’re collecting CloudWatch RUM events at 100% sampling for page load performance and errors with 20 data events — including one start event, one page view event, and 10 performance events (three web vitals, one paint, one navigation, five resource loads), and eight errors per visit — your charges would be as follows:
Total number of RUM data events = 20 data events/visit * 500,000 visits = 10,000,000 data events
Charges for 10,000,000 RUM data events @ $1 per 100,000 data events = 10,000,000* $1/100,000 = $100Monthly CloudWatch RUM data events charges = $100 per month
If your application runs 24x7 for a 30-day month and emits 10,000 metric updates every minute, and your CloudWatch metric stream sends data to a partner HTTP endpoint via a Kinesis Data Firehose delivery stream in US East, your monthly charges would be as follows:
CloudWatch Metric Streams
Total number of metric updates = 10,000 metric updates per minute * 43,200 minutes in the month = 432,000,000 metric updates per month
432,000,000 metric updates @ $0.003 per 1,000 metric updates = $1,296 per month
Monthly CloudWatch Charges = $1,296 per monthKinesis Data Firehose
Kinesis Data Firehose data ingested (GB per month) = 432,000,000 metric updates * 0.5KB (assumed average size per metric update) / 1,048,576 KB/GB = 206GB / month
The Kinesis Data Firehose price in US-East is $0.029 per GB of Data Ingested for the first 500 TB/month = 206GB * $0.029 = $5.97 per month
Kinesis Data Firehose Charges = $5.97 per monthData Out (Kinesis Data Firehose HTTP Endpoint to Monitoring Partner)
Up to 9.999 TB per month @ $0.09 per GB (since the first 100 GB is free, we will remove 100 GB from the price calculation) = 106 GB * $0.09 = $9.54
Data Out Charges = $9.54 per monthTotal Monthly Charges = $1,296 per month + $5.97 per month + $9.54 per month = $1,311.51 per month
Note: Pricing values displayed here are based on US East (N. Virginia) AWS Regions. Please refer to the pricing information for your Region.
-
Example 22 – Assignments (traffic splitting) with Evidently
Example 22 - Network Monitoring
Example 22 - Publishing OpenTelemetry Custom Metrics
Flow Monitor
Let’s imagine you are a retail company that wants to monitor network performance for a payment collection workload. The payment collection workload is deployed on 30 EC2 instances in a single VPC. You are interested in deploying Flow Monitor across all these instances. Your monthly Flow Monitor charges are as follows:1. Monitored resource charges:
30 days * 24 hours = 720 hours
Total number of monitored resources = 30 EC2 instances = 30 monitored resources
Since we offer 10 monitored resources for free for the first 12 months, you will be charged for the remaining = 30-10 = 20 monitored resources
20 monitored resources at $0.0069 per monitored resource per hour = 20 * $0.0069 = $0.138 * 720 hours = $99.36 per month2. CloudWatch metrics charges:
Let’s assume you create 5 monitors to monitor workloads running on these 30 instances. Each monitor vends 5 CloudWatch metrics.
Total number of metrics: 5 monitors * 5 metrics per monitor = 25 metrics
Total CloudWatch charges for metrics: 25 metrics * $0.30/metric/month = $7.5 per month
Total charge for flow monitor in this example: $99.36 + $7.5 = $106.86 per monthInternet Monitor
If you add 10 CloudFront distributions and 20 Virtual Private Clouds (VPCs) to a monitor for monitoring 45,000 city-networks, your charges will be as follows:1. Monitored resource charges:
30 days * 24 hours = 720 hours
Total number of monitored resources = 10 CloudFront distributions + 20 VPCs = 30
30 monitored resources at $0.01 per monitored resource per hour = 30 * $0.01 = $0.30 per hour = $0.30 * 720 hours per month = $216 per month2. Monitored city-network charges:
Total monitored city-networks = 45,000, First 100 city-networks = $0
Total monitored city-networks per month = 45,000 per hour * 720 hours/month = 32,400,000 city-network hours/month
First 100 city-networks per hour, total per month (flat value every month) = 72,000 city-network hours/month
Total billed city-network hours/month = 32,400,000 city-network hours/month - 72,000 city-network hours/month = 32,328,000 city-networks hours/month
32,328,000 city-networks hours/month at $0.74 per 10,000 city-networks per hour = 32,328,000 * $0.000074 = $2392.27 per month3. CloudWatch Logs charges:
Out of 45,000 city-networks, Internet Monitor would only publish CloudWatch Logs for the top 500 city-networks which is less than 500 MB log data per day, or (500 MB * 30) = 15 GB of data per month. If you exclude the free coverage (example: 5 GB), the remaining log data you're charged for would be 10 GB (15 GB - 5 GB). If the fee per GB was $0.50 per month, a reasonable example, your monthly charges for CloudWatch Logs would be under $0.50 * 10 GB = $5 per month.
Total charge for internet monitor in this example: $216 + $2392.27 + $5 = $2,613.27 per monthSynthetic Monitor
Let's imagine you are a financial institution that wants to monitor the performance of your trading applications using Synthetic Monitor. For resilience, you have distributed your application across three Availability Zones, mapping to three subnets. Your infrastructure connects to eight on-premises IP addresses via redundant AWS Direct Connect links. Your monthly bill for using synthetic monitor in US East (N. Virginia) would be calculated as follows:1. Monitored resource charges:
30 days * 24hrs = 720 hours
Total number of VPC subnets: 3
Total number of on-premises destinations accessible from each VPC subnet: 8
3 VPC subnets to the first 4 destinations at $0.10 per monitored resource per hour = 3 * 720 hours * $0.10 = $216 per month
Multiplied by 2 to account for 8 destinations = $216 * 2 = $432 per month2. CloudWatch metrics charges:
For each probe Synthetic Monitor vends 3 CloudWatch metrics
Number of monitored probes: 3 subnets * 8 destination IP addresses = 24 probes
Total number of metrics: 24 probes * 3 metrics per probe = 72 metrics
Total CloudWatch charges for metrics: 72 metrics * $0.30/metric/month = $21.60 per month
Total charge for synthetic monitor in this example: $432 + $21.60 = $453.60 per monthLet’s say you run one traffic-splitting campaign where you’re serving two features (old version and new version) for user traffic of 200,000 total page views per month at 100% sampling rate. You don’t need analysis. Your application generates one assignment event per page view, where an assignment is an Evidently API call determining which user will see which feature (in other words, traffic split). Your charges will be:
Evidently event charges
Total number of Evidently events (assignments) = 200,000 views * 1 Evidently event per page view = 200,000 Evidently events
200,000 assignment Evidently events @ $5 per million Evidently events = $1.00Monthly CloudWatch Evidently charges = $1.00
If your application runs on 100 EC2 instances and publishes custom OTel metrics via the OTLP endpoint at an average of 500 bytes per data point, with 50 metrics per instance reporting every 60 seconds, your monthly charges would be:
Total data points per minute = 100 instances × 50 metrics = 5,000 data points/min Average data point size = 500 bytes Data ingested per minute = 5,000 × 500 bytes = 2.5 MB/min Data ingested per month = 2.5 MB × 60 min × 24 hrs × 30 days = 108 GB/month
Monthly OTel ingestion charges = 108 GB × $0.50/GB = $54.00 per month
This includes 15 months of storage with no separate API, metric count, or storage charges. By comparison, the same 5,000 unique metric series under Classic pricing would cost 5,000 × $0.30 = $1,500/month at the first tier.
-
Example 23 – Launch monitoring with Evidently
Example 23 - Querying OTel Metrics with PromQL
If you run 500 PromQL queries per day, each scanning 10,000 samples (e.g., querying 100 metric series over a 100-point time range), your monthly charges would be:
Total samples scanned per month = 500 queries × 10,000 samples × 30 days = 150,000,000 samples Monthly PromQL query charges = 150M samples × $0.01/M = $1.50 per month
Queries executed through the AWS console (including CloudWatch dashboards, Query Studio) are free of charge.
Let’s say you run two launches serving two feature variations each for user traffic of 200,000 total page views per month at 100% sampling rate. You want to monitor three metrics that are generated from each data event (i.e. three rule matches). Your application generates one assignment event per page view, where an assignment is an Evidently API call determining which user will see which feature (traffic split). It also generates two data events per page view (such as user clicks). Your charges will be:
Evidently event charges
For assignments, number of Evidently events = 200,000 views * 1 Evidently event per page view * 2 launches = 400,000 Evidently events
For data events, number of Evidently events = 200,000 views * 2 Evidently events per page view = 400,000 data Evidently events
Total Evidently events = assignment Evidently events + data Evidently events = 400,000 + 400,000 = 800,000
800,000 Evidently events @ $5 per million Evidently events = $4.00Evidently analysis units charges
Number of Evidently metrics = 2 launches * 3 metrics = 6 metrics
Number of Evidently analysis units = 6 metrics* 400,000 data Evidently events = 2,400,000
Analysis charges = 2,400,000 Evidently analysis units @ $7.50 per million Evidently analysis units = $18.00Monthly CloudWatch Evidently charges = event charges + analysis charges = $4.00 + $18.00 = $22.00
CloudWatch metrics charge = 12 metrics * $0.30 = $3.60
(CloudWatch metrics are per variation – 6 Evidently metrics * 2 variations) -
Example 24 – Experiments and launch monitoring with Evidently
Example 24 - Container Insights with OpenTelemetry Metrics
Let’s say you run two launches and three experiments serving two feature variations each for user traffic of 200,000 total page views per month at 100% sampling rate. You want to monitor three metrics that are generated from each data event (i.e. three rule matches). Your application generates one assignment event per page view, where an assignment is an Evidently API call that says which user will see which feature (traffic split). It also generates two data events per page view (such as user clicks). Your charges will be:
Evidently event charges
For assignments, number of Evidently events = 200,000 views *1 Evidently event per page view * (2 launches+3 experiments) = 1,000,000 Evidently events
For data events, number of Evidently events = 200,000 views * 2 Evidently events per page view = 400,000 data Evidently events
Total Evidently events = 1,000,000 Evidently events (assignment) + 400,000 Evidently events (data) = 1,400,000
1,400,000 Evidently events @ $5 per million Evidently events = $7.00Evidently analysis units charges
Number of Evidently metrics = (2 launches + 3 experiments) * 3 metrics = 15 metrics
Number of Evidently analysis units = 15 metrics * 400,000 data Evidently events = 6,000,000
Analysis charges = 6,000,000 Evidently analysis units @ $7.50 per million Evidently analysis units = $45.00Monthly CloudWatch Evidently charges = event charges + analysis charges = $7.00 + $45.00 = $52.00
CloudWatch metrics charge = 30 metrics * $0.30 = $9.00
(CloudWatch metrics are per variation – 15 Evidently metrics * 2 variations)If you monitor 1 EKS cluster with 50 nodes, 200 pods, and 200 containers using Container Insights OTel, with an average observation size of approximately 1,800 bytes, and the cluster generates 15 GB/day of OTel metric data, your monthly charges would be:
Monthly OTel ingestion = 15 GB/day × 30 days = 450 GB/month Monthly Container Insights OTel charges = 450 GB × $0.08/GB = $36.00 per month
This includes storage and query access with no separate per-metric or API charges. By comparison, the same cluster under observation-based Container Insights pricing (Example 18) would cost approximately $51.75/month at 246M observations.
-
Example 25 – CloudWatch RUM
Example 25 - OTel Vended Metric Enrichment
If your application has 500,000 visits in a month, and you’re collecting CloudWatch RUM events at 100% sampling for page load performance and errors with 20 data events — including one start event, one page view event, and 10 performance events (three web vitals, one paint, one navigation, five resource loads), and eight errors per visit — your charges would be as follows:
Total number of RUM data events = 20 data events/visit * 500,000 visits = 10,000,000 data events
Charges for 10,000,000 RUM data events @ $1 per 100,000 data events = 10,000,000* $1/100,000 = $100Monthly CloudWatch RUM data events charges = $100 per month
If you enable vended metric enrichment for 500 EC2 instances, 50 RDS instances, and 100 ELB load balancers, and these resources publish a combined total of approximately 8,000 metrics at 1-minute intervals, your monthly charges would be:
Total observations per month = 8,000 metrics × 60 min × 24 hrs × 30 days = 345,600,000 observations Average enriched observation size = 450 bytes (includes AWS resource tags and metadata) Monthly enriched ingestion = 345,600,000 × 450 bytes = ~155 GB/month
Monthly Vended Enrichment charges = 155 GB × $0.50/GB = $77.50 per month
Enrichment adds AWS resource tags and account metadata to each data point at ingestion time, eliminating the need for custom pipelines to join metrics with resource context after the fact. Actual bytes per observation depend on the number and size of resource tags applied to your AWS resources.
-
Example 26 – Metrics Insights
Example 26 - OTel Metrics Centralization
If you run Metrics Insights queries through the CloudWatch console, it incurs no charge to you.
When you run your Metrics Insights queries programmatically using AWS CLI, SDK, or AWS CloudFormation, your query is charged based on the number of metrics analyzed, regardless of how you output the results.
If you have 1,000,000 metrics in your account and run a query that selects 1,500 metrics for analysis and that analysis returns 10 time series in the results then your charge will be as follows:
Query charge = 1,500 metrics analyzed * $0.01 per 1,000 metrics analyzed = $0.015
If you have 5,000,000 metrics in your account and run a query that selects 100 metrics for analysis and that analysis returns only 1 time series in the results then your charge will be as follows:
Query charge = 100 metrics analyzed * $0.01 per 1,000 metrics analyzed = $0.001
If you centralize OTel metrics from 10 accounts (50 GB/month each) into a single monitoring account:
Total volume = 500 GB/month First copy to monitoring account = free Second copy (e.g., backup region) = 500 GB × $0.05/GB = $25.00/month
Monthly centralization charges = $25.00 (first destination free; $0.05/GB for each additional)
Additional pricing resources
Easily calculate your monthly costs with AWS.
Contact AWS specialists to get a personalized quote.