As distributed systems have become commonplace, the need for organized, easy to parse debugging information from these systems has become a necessity. However, adding tracing in distributed systems presents unique challenges such as associating related trace information across processes and services, making minimally intrusive changes to add tracing infrastructure, and deciding when enough tracing has been added.
This talk discusses the adventures and resulting battlescars the engineers at Kasten obtained while adding OpenTracing and Jaeger to their Kubernetes system. By the end of this talk, listeners will know what results to expect from adding OpenTracing to Go projects, understand some of the gotchas associated with tracing, and learn some of the differences between tracing with services meshes only and using a tracing library.