In monolithic applications, "why is it slow?" could be answered with a profiler. Follow the function call stack inside one process to see which function consumes time. But when a single request crosses API Gateway → Lambda → DynamoDB → external API → ElastiCache in microservices architecture, this approach breaks down. Each service only knows what happened inside itself; no one holds the whole request timeline. Even collecting all logs leaves you stuck on "how do I group this request's logs?" AWS X-Ray solves exactly this "sewing dispersed requests together" problem — a distributed tracing service.