Improving the quality of mobile applications with Mobile APM

Mobile applications now account for 15 percent of all Internet traffic, with 1.5 billion users worldwide. Done right, a simple iPhone application can reach 50 million users in days. When you have a successful mobile application it is difficult to ensure all of your users have a great experience. While good performance gets a high rating and strong sales in the App Store, poor performance will impact the application’s rating—and can cost a business tens of thousands of dollars for every second of delayed response or app failure.

The reality is often times the organization responsible for infrastructure and monitoring have limited influence with the mobile application owners. Most mobile application owners have visibility into the server-side applications, but limited visibility into the mobile experience. In a recent report from Gartner, Jonah Kowall calls out the growth in the mobile space:

By 2018, 25% of those organizations with current, five-dimensional APM investments will extend them to mobile devices and applications, up from under 1% today.

Monitoring native mobile applications is increasingly challenging due to the sheer amount of platforms, devices, and variability of connectivity. In order to truly understand your users you need to leverage end user experience monitoring (EUEM) to gain visibility into how your actual users perceive your application. You need to utilize Mobile APM to gain visibility into application crashes and hangs, understand the interactions between mobile applications and the server-side, and understand your users through analytics. AppDynamics makes it easy to get complete visibility across your web and mobile applications:

Mobile APM

 

Find out more about the key challenges in improving the quality of mobile applications in a Gartner analyst report written by the leading APM analyst Jonah Kowall.

Take five minutes to get complete visibility into the performance of your mobile applications with AppDynamics Mobile RUM today.

For a introduction to AppDynamics Mobile Real-User Monitoring, watch our On-Demand Webinar now.

Diving Into AppDynamics Mobile APM & End User Monitoring

In the AppDynamics Spring 2014 release we greatly improved our End User Monitoring solution and added Mobile Application Performance Monitoring for iOS and Android applications. Through our end user experience dashboard you can understand the end user experience of your users in real-time via browsers or mobile devices:

 

We greatly improved visibility into the geography drill down breaking down requests by web vs mobile and  iOS vs Android:

We added more granular client-side metrics with a new waterfall timing visualization for browser snapshots:

 

We also added server-side correlation for browser snapshots for end to end visibility from the client-side to the server-side:

We enhanced our browser snapshots with a better drill down for discovering javascript errors:

We also expore all client-side metrics in the metrics browser to easily track and correlate over time:

AppDynamics added support for iOS and Android applications with complete end user monitoring, crash reporting, network request snapshots and device and user analytics:

 

Through instrumenting network requests from mobile apps to the server side you gain end to end visibility from device all the way to the server-side with Network Request Metrics. With AppDynamics Mobile Snapshots with Server-side Correlation you can correlate network errors and exceptions on the server-side:

With AppDynamics Mobile APM Crash Reporting you can proactively detect and respond to application crashes, hangs, and failed network requests and discover crash metrics by Device, Geo, App and OS Version etc. Gain complete visibility with iOS Crash Reporting with symbolication:

With User & Device Analytics you can understand your users with breakdown by device, connection, carrier, os version, app version

Through the AppDynamics metric browser you can track custom  metrics and get complete visibility into the performance of  your mobile apps:

Take five minutes to get complete visibility into the performance of your production applications with AppDynamics today.

Monitoring the Real End User Experience

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.

1geo
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.

2browserdevice

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. 

Screen Shot 2013-07-25 at 9.47.14 AM

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.

Screen Shot 2013-07-25 at 9.45.01 AM

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.

4breakdown

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