Why X-Ray?
With AWS X-Ray, there are no upfront fees or commitments. You pay only for what you use, based on the number of traces recorded, retrieved, and scanned. A trace represents a request to your application and may include multiple data points, such as for calls to other services and database access. X-Ray provides a minimum guaranteed trace size of 100KB. Trace data is retained for 30 days from the time it is recorded at no additional cost.
AWS Pricing Calculator
Calculate your AWS X-Ray and architecture cost in a single estimate.
Perpetual Free Tier
- The first 100,000 traces recorded each month are free
- The first 1,000,000 traces retrieved or scanned each month are free
Additional charges
Example 1 - 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 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 = $0
In 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.15
Your total cost per month for using AWS X-Ray equals $0.24+ $0.15 = $0.39.
Example 2 - Monitor application performance with Application Signals (Preview), AWS X-Ray Traces, and Service Level Objectives (SLOs)
Application Signals (Preview):
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.84
Total 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 month
In addition, you can use Synthetics and RUM (real user monitoring) with Application Signals. Refer to individual pricing examples for charges.