Thanks to our guest blogger Derek Abing and his co-author Brian Perrault – both System Engineers with a leading insurance company focusing on application performance. More details about their work at the end of this blog.
In production support it is often hard to correlate what might be happening on local servers with what users are reportedly experiencing. In April, the developers for a java application that handles electronic distribution of scanned mail and electronic faxes were receiving reports that their application was running slowly from remote offices and came to our Performance Availability and Capacity Management (PaCMan) team for help in determining the cause of this issue. From vanilla server side dynaTrace, everything was looking fine. No particular transaction was taking a substantial amount of time. This led us to believe that the problem may lie more on the client side. Coincidentally, we were in the middle of a Proof of Concept for Dynatrace User Experience Management (UEM) so we decided to apply these efforts towards this application to help identify the issue.
Getting insight into the actual click paths of end users and the load behavior of pages on certain browsers allowed us to improve Client Rendering Time by 47%, Overall Page Load Time by 29% as well as implementing a new feature in Struts that prevents users from impatiently clicking Save too many times causing problems on our server-side implementation.
Finding #2: “Impatient” trigger save action
UEM also gives you the ability to directly correlate user actions at the client with what happen on the server. Using this ability, we were able to identify that some users were exacerbating their slowdowns by repeatedly clicking buttons and hitting refresh while they were experiencing an issue. The developers plan to fix this issue by implementing an Apache Struts feature to allow only the first press of a button to cause an action. Figure 2 below shows a user that was experiencing slowdowns due to network latency (viewable in UEM), but was increasing their slowdowns by repeatedly clicking the “Save to XXXX” button and the refresh button before the page had finished loading.
Finding #3: jQuery download impacting page load time
Final Result: Huge Improvement of End User Experience
With just the changes that the application team has already put in place they have reduced the overall response time for their web pages by an average of 538.53ms (29%). This has also lowered the peak load time of the week by 894.51ms (27%). Figure 4 below shows the change in user response time for an average work week before (dashed line) and after (solid line) the changes were implemented. The PaCMan and application developers will continue looking into other statistics revealed via UEM in order to further fine tune the application.
A special Thank You to the two authors
Derek Abing and Brian Perrault are System Engineers with a leading insurance company focusing on application performance. They are helping transform dynaTrace into greater APM solution, and a greater Enterprise Monitoring solution. They also drive the creation and enhancement of various Action and Monitoring plugins which helps their organization collect, analyze, predict, and report the performance of key applications and infrastructure. Additionally, they are an integral part of shifting the organization’s paradigm from reactive remediation toward proactive management. Derek and Brian are active members on the APM Community and have been named Dynatrace’s Most Valuable Community Contributors (dTMVCC) for two years in a row. They have also obtained Dynatrace’s APM Associate Certifications.
*Feature image attribution Brain Dump