We performed load testing a of new application with a client recently and a recurring question repeatedly came up: “How long was the transaction in OLS.Switch and how long was it at the endpoint ?”
It is an important question - one that is used to monitor application performance as well as to assist in troubleshooting purposes - and one we can clearly answer - the transaction took - a total of 5.6 seconds - and we waited up to our configured endpoint timeout of 5 seconds before we timed-out the transaction. Or - the transaction took 156 ms - 26 ms of those against a local response simulator.
In our application we use a profiler to trace execution time of each of our Transaction Participants: In which we see in our application logs as:
(* note these traces are from a test app running on my macbook and are for illustrative purposes only *)
While we can answer the question by reviewing application logs - it is harder to perform any analysis on a series of transactions, specifically for external duration. We can do currently for total duration, however - this is valuable from the device perspective for how long a transaction took to process.
Logging the external duration along with our total duration for switched-out transactions and we now have: