Using Jaeger to monitor and troubleshoot
When we want to monitor and troubleshoot transactions in a complex distributed system, we need something a bit more powerful than what we have just learned. Of course, we can and should continue to instrument our code with meaningful logging messages, yet we need something more on top of that. This more is the capability to trace a single request or transaction end to end, as it flows through a system consisting of many application services. Ideally, we also want to capture other interesting metrics, such as the time spent on each component versus the total time that the request took.
Luckily, we do not have to reinvent the wheel. There is battle-tested open source software out there that helps us achieve the aforementioned goals. One example of such an infrastructure component or software is Jaeger (https:/ www.jaegertracing.io/). When using Jaeger, you run a central Jaeger server component and each application component uses a Jaeger client...