Before we talk about solving the organizational challenges of deploying tracing, let's talk about what those challenges are. What is so different about end-to-end tracing? It seems all we need to do is add some instrumentation, just like we do for gathering metrics or logs. We spent several chapters in Part II on the technical aspects of adding instrumentation, including solutions to make it easier through auto-instrumentation, so what have we missed?
Consider a small tech company that has about a dozen software engineers. If this company embraces the idea of microservices-based architecture, it can build a system that contains from 10 to 20 microservices. Most engineers would know what each service does, if not necessarily the details of how they all interact. If they decide to add distributed tracing instrumentation to the system, it is generally not a large task, and it can be accomplished by one or two people in a short period of time...