Distributed tracing is observing data requests as they flow through a distributed system. Modern microservices architecture often has multiple small independent components—these components constantly communicate and exchange data using APIs to do complex work. With distributed tracing, developers can trace—or visually follow—a request path across different microservices. This visibility helps troubleshoot errors or fix bugs and performance issues.","sortDate":"2023-11-30","headlineUrl":"https://aws.amazon.com/what-is/distributed-tracing/?trk=faq_card","id":"faq-hub#what-is-distributed-tracing","category":"Developer Tools","primaryCTA":"https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?pg=what_is_header","headline":"What is Distributed Tracing?"},"metadata":{"tags":[{"id":"GLOBAL#tech-category#devtools","name":"Developer Tools","namespaceId":"GLOBAL#tech-category","description":"Developer Tools","metadata":{}},{"id":"faq-hub#faq-type#what-is","name":"what-is","namespaceId":"faq-hub#faq-type","description":"

what-is","metadata":{}}]}}]},"metadata":{"auth":{},"testAttributes":{}},"context":{"page":{"locale":null,"site":null,"pageUrl":"https://aws.amazon.com/what-is/distributed-tracing/","targetName":null,"pageSlotId":null,"organizationId":null,"availableLocales":null},"environment":{"stage":"prod","region":"us-east-1"},"sdkVersion":"1.0.115"},"refMap":{"manifest.js":"289765ed09","what-is-header.js":"251923df8a","what-is-header.rtl.css":"ccf4035484","what-is-header.css":"ce47058367","what-is-header.css.js":"004a4704e8","what-is-header.rtl.css.js":"f687973e4f"},"settings":{"templateMappings":{"category":"category","headline":"headline","primaryCTA":"primaryCTA","primaryCTAText":"primaryCTAText","primaryBreadcrumbText":"primaryBreadcrumbText","primaryBreadcrumbURL":"primaryBreadcrumbURL"}}}

Distributed tracing is observing data requests as they flow through a distributed system. Modern microservices architecture often has multiple small independent components—these components constantly communicate and exchange data using APIs to do complex work. With distributed tracing, developers can trace—or visually follow—a request path across different microservices. This visibility helps troubleshoot errors or fix bugs and performance issues.","id":"seo-faq-pairs#what-is-distributed-tracing","customSort":"1"},"metadata":{"tags":[{"id":"seo-faq-pairs#faq-collections#distributed-tracing","name":"distributed-tracing","namespaceId":"seo-faq-pairs#faq-collections","description":"

distributed-tracing","metadata":{}}]}},{"fields":{"faqQuestion":"What are the benefits of distributed tracing?","faqAnswer":"

Software developers can implement distributed tracing systems in almost any cloud-native environment, as well as record distributed traces that the cloud applications generate. Moreover, tracing tools support numerous programming languages and software stacks, allowing software teams to monitor and collect performance data for different applications on the same platform.  \n

Development teams use distributed tracing to improve observability, as well as solve performance issues that conventional software debugging and monitoring tools can’t help with.  \n

The following are more benefits of distributed tracing. \n

Accelerate software troubleshooting \n

Modern applications rely on numerous microservices to exchange data and fulfill service requests across distributed systems. Troubleshooting performance issues in a microservice-based architecture is significantly more challenging than in a monolithic software application. Unlike a monolithic application, the root cause of a specific software problem might not be apparent—the overlapping and complex interactions between multiple software modules can make it difficult to diagnose issues.  \n

With distributed tracing, software teams can monitor data that passes through complex paths connecting various microservices and data storage. Using distributed tracing tools, software teams track requests and visualize data propagation paths with precision. Software teams can solve performance issues promptly and minimize service disruptions.  \n

Improve developer collaboration \n

Several developers are often involved in building a cloud application, with each responsible for one or several microservices. The software development process slows down if developers cannot trace data exchanged by microservices. With distributed tracing systems developers can collaborate by providing telemetry data, such as logs and traces, for every service request the microservice makes. Developers can accurately respond to bugs and other software issues discovered during testing and production.  \n

Reduce time to market \n

Organizations deploying distributed tracing platforms can streamline and accelerate efforts to release software applications for end users. Software teams review distributed traces to gain insight that speeds up software development, minimizes development costs, understands user behaviors, and improves market readiness. ","id":"seo-faq-pairs#benefits-of-distributed-tracing","customSort":"2"},"metadata":{"tags":[{"id":"seo-faq-pairs#faq-collections#distributed-tracing","name":"distributed-tracing","namespaceId":"seo-faq-pairs#faq-collections","description":"

distributed-tracing","metadata":{}}]}},{"fields":{"faqQuestion":"What are the different types of distributed tracing? ","faqAnswer":"

Software teams use distributed tracing tools to monitor, analyze, and optimize applications. \n

Code tracing \n

Code tracing is a software process that inspects the flow of source codes in an application when performing a specific function. It helps developers understand the logical flow of the code and identify unknown issues. For example, developers use code tracing to validate that the service request has invoked steps to query a database. If some software functions fail to reply, the tracing system will collect the appropriate error status and draw attention to the response time.  \n

Program tracing \n

Program tracing is a method wherein developers can examine the addresses of instructions and variables called by an active application. When a software application runs, it processes each line of code that resides in a specific allocated memory space. The application also processes variables stored in the machine memory. Inspecting changes in program and data memories is challenging without an automated tool. With program tracing, software teams can diagnose deep-rooted performance issues like memory overflow, excessive resource consumption, and blocking logic operations.  \n

End-to-end tracing \n

With end-to-end tracing development teams can track data transformation along the service request path. When an application initiates a request, it sends data to other software components for further processing. Developers use tracing tools to track and compile changes that critical data undergo from end to end. It gives an application-centric view of requests flowing through the application.","id":"seo-faq-pairs#different-type-distributed-tracing","customSort":"3"},"metadata":{"tags":[{"id":"seo-faq-pairs#faq-collections#distributed-tracing","name":"distributed-tracing","namespaceId":"seo-faq-pairs#faq-collections","description":"

distributed-tracing","metadata":{}}]}},{"fields":{"faqQuestion":"How does end-to-end distributed tracing work in microservices architecture? ","faqAnswer":"

When using applications, users initiate service requests and different application components process the request.  \n

Consider a user making a ticket booking in an online movie booking application. The user enters their contact details, movie details, and payment information and chooses Book Now. A request is created that goes to: \n

Next Steps on AWS

Check out additional product-related resources
Innovate faster with the most comprehensive set of Container services 
Sign up for a free account

Instant get access to the AWS Free Tier.

Sign up 
Start building in the console

Get started building in the AWS management console.

Sign in