Modern applications have evolved from single-threaded monoliths to concurrent, asynchronous, distributed, polyglot microservices. Those who build them are beginning to understand the role and importance of distributed tracing. After all, it’s the most direct way to understand how and why complex systems misbehave, by visualizing transactions as they go through a system, crossing process boundaries. Every organization that’s adopted microservices at scale has had to deploy a distributed tracing solution—first with Dapper at Google, then with Zipkin at Twitter, and now with various open source and commercial tracing solutions at many other technology companies.
As our industry migrates to microservice-based applications, distributed tracing will become the table stakes for visibility into production systems; thus, developers must learn how to integrate and deploy tracing technology effectively.
Priyanka Sharma and Yuri Shkuro take you from zero to implementing useful traces with OpenTracing, in the programming language of your choice, walking you through visualizing the critical path for transactions with microservices, enabling debugging, latency monitoring, and overall performance gains.
The goal throughout is to demystify distributed tracing and convey best practices through interactive lessons, placing a special focus on source code instrumentation and integration strategies, as historically those have been the most daunting aspect of distributed tracing for newcomers.
Prithvi Raj is an observability engineer working on Uber’s distributed tracing system, Jaeger.
Won Jun Jang is an observability engineer at Uber Technologies, working on distributed tracing, monitoring, and performance. In his spare time, he gets lectured by his life coach to write a more interesting Bio to sell himself better.
©2018, O'Reilly Media, Inc. • (800) 889-8969 or (707) 827-7019 • Monday-Friday 7:30am-5pm PT • All trademarks and registered trademarks appearing on oreilly.com are the property of their respective owners. • firstname.lastname@example.org