February 2019
Intermediate to advanced
444 pages
11h 36m
English
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 ...