Tracing
Tracing is used to reproduce specific scenarios and request flows. It's already helpful in retracing complex application processes, but it's especially helpful when multiple applications and instances are involved.
However, what's important to be pointed out is that there needs to be a business, not technical, requirement for tracing systems, similar to journaling.
Tracing is a poor technique for debugging or performance tracing systems. It will have a certain impact on performance and doesn't help much in resolving performance regression. Interdependent, distributed applications that need to be optimized in their performance advisably solely emit information about their quality of service, such as response times. Sampling techniques can sufficiently gather information that indicate performance issues in the applications.
However, let's have a look at business-motivated tracing to track the components and systems involved.
The following diagram shows a trace of a specific request involving...