Web application performance is fundamentally associated in the mind of the end user; with a brands reliability, stability, and credibility. Slow or unstable performance is simply not an option when your users are only a click away from taking their business elsewhere. Understanding your users, the locations they are coming from, and the devices/browsers they are using is crucial to ensuring customer loyalty and growth.
Today’s modern web applications are architected to be highly interactive, often executing complex client side logic in order to provide a rich and engaging experience to the user. This added complexity means it is no longer good enough to simply measure the effects users have on the back-end. It is also necessary to measure and optimize the client-side performance to ensure the best possible experience for your users.
Determining the root cause for poor user experience is a costly and time consuming activity which requires visibility into page composition, JavaScript error diagnostics, network latency metrics and AJAX/iframe performance.
Let’s take a look at a few of the key features available in AppDynamics 3.7 which simplify troubleshooting these problems.
End User Experience dashboard:
The first view we will look at reports EUM data by geographic location showing which regions have the highest loads, the longest response times, the most errors, etc.
The dashboard is split into three main panels:
- A main panel in the upper left that displays geographic distribution on a map or a grid
- A panel on the right displaying summary information: total end user response time, page render time, network time and server time
- Trend graphs in the lower part of the dashboard that dynamically display data based on the level of information displayed in the other two panels
The geographic region for which the data is displayed throughout the dashboard is based on the region currently showed on the map or in the summary panel. For example, if you zoom down from global view to France in the map, the summary panel and the graphs display data only for France.
This view is key to understanding the geographical impact of any network & CDN latency performance issues. You can also see which are the busiest geographies, driving the highest throughput of your application.
Browsers and Devices:
From the Browsers and Devices tabs you can see the distribution of devices, browsers and browser versions providing an understanding of which are the most popular access mechanisms for the users of your application and geographic-split by region. From here we can isolate if a particular browser or device is delivering a reduced experience to the end user and help plan the best areas for optimisation.
Troubleshooting End User Experience:
The user response breakdown shown below, is the first place we look to troubleshoot why a user is experiencing slow response times. It provides a full breakdown of where the overall time is being spent during the various stages of a page render, highlighting issues such as network latency, poor page design, too much time parsing HTML or downloading and executing JavaScript.
Response time metric breakdown
First Byte Time is the interval between the time that a user initiates a request and the time that the browser receives the first response byte.
Server Connection Time is the interval between the time that a user initiates a request and the start of fetching the response document from the server. This includes time spent on redirects, domain lookups, TCP connects and SSL handshakes.
Response Available Time is the interval between the beginning of the processing of the request on the browser to the time that the browser receives the response. This includes time in the network from the user’s browser to the server.
Front End Time is the interval between the arrival of the first byte of text response and the completion of the response page rendering by the browser.
Document Ready Time is the time to make the complete HTML document (DOM) available.
Document Download Time is the time for the browser to download the complete HTML document content.
Document Processing Time is the time for the browser to build the Document Object Model (DOM)
Page Render Time is the time for the browser to complete the download of remaining resources, including images, and finish rendering the page.
AppDynamics EUM reports on three different kinds of pages:
- A base page represents what an end user sees in a single browser window.
- An iframe is a page embedded in another page.
- An Ajax request is a request for data sent from a page asynchronously.
Notifications can be configured to trigger on any of these.
JavaScript error detection
JavaScript error detection provides alerting and identification of the root cause of JavaScript errors in minutes, highlighting the JavaScript file, line # and exception messages for all errors seen by your real users.
Server-side correlation
If the above isn’t enough and you want to look into the execution within the datacentre, you can drill in-context from any of the detailed browser snapshots directly into the corresponding call stack trace in the application servers behind. This provides end-to-end visibility of a user’s interaction with your web application, from the browser all the way through the datacentre and deep into the database.
Deployment and scalability:
Deployment is simple – all you have to do is add a few lines of JavaScript to the web pages you want to monitor. We’ll even auto-inject this JavaScript on certain platforms at runtime. With its elastic public cloud architecture, AppDynamics EUM is designed to support billions of devices and user sessions per day, making it a perfect fit for enterprise web applications.
See Everything:
With AppDynamics you’ll get visibility into the performance of pages, AJAX requests and iframes, and you can see how performance varies by geographic region, device and browser type. In addition, you’ll get a highly granular browser response time breakdown (using the Navigation Timing API) for each snapshot, allowing you to see exactly how much time is spent in the network and in rendering the page. And if that’s not enough, you’ll see all JavaScript errors occurring at the end user’s browser down to the line number.
If you don’t currently know exactly what experience your users are getting when they access your applications or your users are complaining and you don’t know why then why not checkout AppDynamics End User Monitoring for free at appdynamics.com