AWS X-Ray is an application performance management service that enables a developer to analyze and debug applications in the Amazon Web Services (AWS) public cloud.
A developer can use AWS X-Ray to visualize how a distributed application is performing during development or production, and across multiple AWS regions and accounts. AWS X-Ray is compatible with microservices and serverless-based applications, which can be difficult to debug using conventional methods. AWS X-Ray supports applications that run in Amazon Elastic Compute Cloud (EC2), Amazon EC2 Container Service (ECS), AWS Lambda and AWS Elastic Beanstalk.
AWS X-Ray enables a developer to create a service map that displays an application's architecture, including connections to components and a dependency tree. The service then evaluates response code for each request made to an application and highlights errors or performance issues, such as high latency.
X-Ray uses a trace -- a group of segments containing all data points for a single component -- to track and relay requests to an application. Each segment is comprised of one or more sub-segments that contain data such as queries, time stamps and error statuses. A developer can retrieve trace data 30 seconds after it is collected, and the service stores data for 30 days.
AWS X-Ray supports AWS Lambda, allowing a developer to see how long it takes to execute functions -- from trigger to termination. The developer can also see calls from the function to other services.
The AWS X-Ray agent enables a developer to send data to the service without using application programming interfaces (APIs). The agent aggregates information from log files and sends them to X-Ray for analysis and storage.
AWS X-Ray provides a set of query APIs that a developer can use to build custom analysis or visualization apps based on X-Ray records. AWS X-Ray also includes a software development kit that captures API metadata and includes additional drivers for MySQL and PostgreSQL.