The main purpose of E2E Trace Analysis is investigating problems related to a single user activity caused by one or more user clicks in the front end. One single user click in a Web UI or Portal front-end can trigger one or more requests to the web server. While the application running on the web server processes a request, it can trigger several requests to other components (systems) in the solution landscape.
The analysis of performance and functional problems in such a complex landscape is time consuming and requires expert knowledge. The end-to-end cross-component tracing aims to decrease the time for gathering the relevant trace data related to a single user activity and simplifies the analysis by guiding the user through the analysis steps and identifying the component which consumes the biggest amount of the total execution time. In addition, it is possible to find exceptions which were triggered by the request in one of the connected components.
This all is achieved with the help of the SAP Passport. The passport is a simple extension of the communication protocols used in SAP landscape (such as HTTP or RFC) and consists of two parts. The first is a GUID which identifies the requests uniquely, the second are trace flags which indicate which trace should be turned on in one of the involved components.
The passport is injected client side into the communication and then passed over from system to system. Each system that receives a request which contains a passport turns its trace on dynamically for the processing of this request (based on the trace flags). When the trace is written to the disk or the database the GUID of the passport is included to be able to identify the request later on. The passport is also injected into follow up requests when another call to an external system is made, which then turns on the trace dynamically.
This means actually, that all traces throughout a landscape can be collected for a single click of an end user because they are identified by the GUID which was generated at client side. Based on the trace information which is collected it is very easy to identify which component took which time to process the request (e.g. processing in Java in an Enterprise Portal, processing in a connected ABAP system, processing on the DB, in the network, on the client side) and isolate problem causing components.
But back to the start, the E2E trace is triggered with the HTTP client plugin for web based scenarios or directly from SAPUI5 based applications. Then the end user performs the activities which are causing the problem and the whole tracing process is started in the connected backend systems.
After the trace has been created, SAP Solution Manager collects all the trace data from all systems and displays the results broken down per step in an overview screen (Figure 1 below). The trace overview allows to identify on which part of the request execution, the most time has been spent (e.g. client, network, server).
Figure 1: Trace Overview
In the given example it can be easily seen, that most of the time is spent on server side, so the next natural step is to look deeper in the server execution and which server instances have been involved.
As you can see in the figure below, the execution of a single request can spawn multiple systems. Nevertheless, it is also obvious that in the scenario the most time is spent on the ABAP system T1E (namely around 6,5 seconds).
Figure 2: Server summary
Following the drill down we can see that out of this 6,5 seconds, nearly all the time is spent by executing a single function module (Figure 3 below).
Figure 3: Call Tree with trace time distribution
Now it is possible to analyze on a request level which traces have been triggered by the request and by this identify the function module.
E2E Trace is a very powerful tool which is integrated in all SAP infrastructures and also reused in monitoring & alerting by the End User Experience Monitoring. This deep insight into a SAP system gets more and more useful in today's highly integrated and heterogeneous landscapes.
For more details check: Using E2E Trace