Distributed Tracing in Practice: Instrumenting, Analyzing, and Debugging Microservices
Parker, Austin, Spoonhower, Daniel, Mace, Jonathan
Most applications today are distributed in some fashion. Monitoring the health and performance of these distributed architectures requires a new approach. Enter distributed tracing, a method of profiling and monitoring applications--especially those that use microservice architectures. There's just one problem: distributed tracing can be hard. But it doesn't have to be.
With this practical guide, you'll learn what distributed tracing is and how to use it to understand the performance and operation of your software. Key players at LightStep walk you through instrumenting your code for tracing, collecting the data that your instrumentation produces, and turning it into useful, operational insights. If you want to start implementing distributed tracing, this book tells you what you need to know.
- The pieces of a distributed tracing deployment: Instrumentation, data collection, and delivering value
- Best practices for instrumentation (the methods for generating trace data from your service)
- How to deal with or avoid overhead, costs, and sampling
- How to work with spans (the building blocks of request-based distributed traces) and choose span characteristics that lead to valuable traces
- Where distributed tracing is headed in the future
Austin Parker is an Open Source Software Engineer at LightStep, where he works as a core contributor and maintainer to the OpenTracing project. Prior to LightStep, he was a Software Architect at Apprenda building enterprise platforms using Kubernetes.
Daniel Spoonhower is a co-founder at LightStep, where he's building performance management tools for modern software systems. Previously, Spoons spent almost six years at Google where he worked on developer tools as part of both Google's internal infrastructure and Cloud Platform teams. He has published papers on the performance of parallel programs, garbage collection, and real-time programming. He has a PhD in programming languages from Carnegie Mellon University but still hasn't found one he loves.
Jonathan Mace is a tenure track faculty member at the Max Planck Institute for Software Engineering. His areas of research include cloud systems, distributed systems, networking, and operating systems.
Ben Sigelman is the CEO and co-founder of LightStep, co-creator of Dapper (Google's distributed tracing tool that helps developers make sense of their large-scale distributed systems), and co-creator of the open-source OpenTracing API standard (a project within the CNCF).
Rebecca Isaacs is a software engineer currently focused on the performance tuning and debugging of large-scale data center services. She was previously a research scientist, most recently at Google. She first started thinking about tracing for distributed systems over 15 years ago while at Microsoft Research, which she joined after obtaining a PhD from Cambridge University and a BSc from the University of Glasgow.