Developer Guide

What is AWS X-Ray?

AWS X-Ray is a service that collects data about requests that your application serves, and provides tools you can use to view, filter, and gain insights into that data to identify issues and opportunities for optimization. For any traced request to your application, you can see detailed information not only about the request and response, but also about calls that your application makes to downstream AWS resources, microservices, databases and HTTP web APIs.

The X-Ray SDK provides interceptors that you can add to your code to trace incoming HTTP requests, client handlers to instrument AWS SDK clients that your application uses to call other AWS services, and an HTTP client that you can use to instrument calls to other internal and external HTTP web services. The SDK also support instrumenting calls to SQL databases, automatic AWS SDK client instrumentation, and other features.

Instead of sending trace data directly to X-Ray, the SDKs send JSON segment documents to a daemon process listening for UDP traffic. The X-Ray daemon buffers segments in a queue and uploads them to X-Ray in batches. The daemon is available for Linux, Windows, and macOS, and is included on AWS Elastic Beanstalk and AWS Lambda platforms.

X-Ray uses trace data from the AWS resources that power your cloud applications to generate a detailed service graph that shows the client, your front-end service, and back-end services that your front-end service calls to process requests and persist data. You can use the service graph to identify bottlenecks, latency spikes, and other issues that you can solve to improve the performance of your applications.

Use the getting started tutorial to start using X-Ray in just a few minutes with an instrumented sample application, or keep reading to learn about the languages, frameworks and services that work with X-Ray.