Tracing Go programs is a fantastic way to check the interoperability between functions and services within your Go program. Tracing allows you to pass context through your system and evaluate where you are being held up, whether it's by a third-party API call, a slow messaging queue, or an O(n2) function. Tracing will help you to find where this bottleneck resides. In this chapter, we're going to learn the following:
- The process of implementing tracing
- The process of sampling with tracing
- The process of interpreting tracing
- The process of comparing traces
Being able to implement tracing and interpret the results will help developers to understand and troubleshoot their distributed systems.