Given the incentives mismatch problem we just discussed, one of the best ways of getting tracing instrumentation into all applications is to ensure that it requires no work whatsoever by the adopting teams, that is, it comes for free, by default. Of course, this is easier said than done. There may be situations when tracing cannot be added without requiring some code changes in the application. For example when I joined Uber, the engineering organization had just started adopting Go as the programming language for the backend services. The practice of threading the context.Context
object through the code was not widespread, and the type itself was not even a part of the Go standard library (it was defined in golang.org/x/net/context
and only moved to the standard context
package in Go version 1.7). As a result, the context propagation was non-existent in many applications, making distributed tracing impossible without code changes.
Mastering Distributed Tracing
By :
Mastering Distributed Tracing
By:
Overview of this book
Mastering Distributed Tracing will equip you to operate and enhance your own tracing infrastructure. Through practical exercises and code examples, you will learn how end-to-end tracing can be used as a powerful application performance management and comprehension tool.
The rise of Internet-scale companies, like Google and Amazon, ushered in a new era of distributed systems operating on thousands of nodes across multiple data centers. Microservices increased that complexity, often exponentially. It is harder to debug these systems, track down failures, detect bottlenecks, or even simply understand what is going on. Distributed tracing focuses on solving these problems for complex distributed systems. Today, tracing standards have developed and we have much faster systems, making instrumentation less intrusive and data more valuable.
Yuri Shkuro, the creator of Jaeger, a popular open-source distributed tracing system, delivers end-to-end coverage of the field in Mastering Distributed Tracing. Review the history and theoretical foundations of tracing; solve the data gathering problem through code instrumentation, with open standards like OpenTracing, W3C Trace Context, and OpenCensus; and discuss the benefits and applications of a distributed tracing infrastructure for understanding, and profiling, complex systems.
Table of Contents (21 chapters)
Mastering Distributed Tracing
Contributors
Preface
Other Books You May Enjoy
Leave a review - let other readers know what you think
Free Chapter
Why Distributed Tracing?
Take Tracing for a HotROD Ride
Distributed Tracing Fundamentals
Instrumentation Basics with OpenTracing
Instrumentation of Asynchronous Applications
Tracing Standards and Ecosystem
Tracing with Service Meshes
All About Sampling
Turning the Lights On
Distributed Context Propagation
Integration with Metrics and Logs
Gathering Insights with Data Mining
Implementing Tracing in Large Organizations
Under the Hood of a Distributed Tracing System
Afterword
Index
Customer Reviews