Whether you are well established e-Commerce brand such as Nordstrom, JCPenny, or Costco, or a small business with a web shop, it’s never too late to do your end user performance homework.

Robert, who developed and runs a “smaller” ASP.NET MVC based web shop, started getting individual user complaints about performance and usability problems. A simple online Performance Test  revealed that the site was not among the fastest when compared to other players in the industry:

Performance Test Result showed that the site ranked 32 out of 33 – clearly some action items are needed!
Performance Test Result showed that the site ranked 32 out of 33 – clearly some action items are needed!

He expected some of his non-optimized SQL Server Stored Procedures to play a role. Spending a little time using tools such as Dynatrace showed him what’s really going on – both on his developer machine and even more importantly, on the production system:

Low Hanging Fruit on Dev Machine through the Browser Performance Report

  • 75% Roundtrip Reduction
    • Optimized 36 image requests by using sprites
    • Optimized 14 individual jQuery files by merging
    • 20% Faster Server Time
      • Long running and duplicated stored procedure calls

Real life problems in Production using Dynatrace

  • Infrastructure Configuration Issues
    • 4.5s delay caused by sporadic DNS lookup issues for ASP.NET Session Storage
    • 2min delay caused by bad URLs and wrong timeout setting for an IIS Module
    • Slow Search Pages
      • > 1MB AJAX Responses: All search result returned to browser b/c paging was implemented in JavaScript
      • 50% CPU consumption of server-side RegEx to construct search result page

It doesn’t matter whether you built a custom ASP .NET or PHP application, whether you based the application on a platform such as SharePoint, CRM, Hybris, or Magento, or whether you built a desktop web, mobile web or mobile native app: You always have to do your homework. Below are details on how you can – as a developer, tester, architect or application owner- manipulate your environment to identify different optimization options like Robert did.

Step 1: Downloading and registering for the Dynatrace Free Trial

It is as easy as going to My Dynatrace Trial, entering your name and email and hitting register. You will then get an email to confirm your account and a second one with a license key (to be used for machines that don’t have internet access to activate the license online).

Step 2: Installation and Configuration on the Developer Workstation

As most ASP.NET Applications, Robert’s app also runs on IIS – on his laptop. He installed the Dynatrace free trial on the same machine allowing the installer to automatically enable a .NET Agent, a Web Server and a Browser Agent on that machine (it is recommended to do so). After launching the dynaTrace Client and following the instructions to activate the license, it is time to move through the Application Configuration Wizard who helps setting the Web Server Agent (for IIS and the Site) and the .NET Agent (for the Application Pool of his app). Here is a little overview of how the final setup looks like on his machine (including the ports used by Dynatrace to communicate between server, collector and agents):

Dynatrace setup on a developer workstation instrumenting an ASP.NET Application running in IIS
Dynatrace setup on a developer workstation instrumenting an ASP.NET Application running in IIS

If you want a more detailed step by step descriptions check out Connect Agent to Dynatrace.

Additionally he also configured the Browser Agent (see blog for detailed steps) which is a native plugin on his Internet Explorer and FireFox to collect deep dive browser diagnostics information such as JavaScript executions and Rendering.

Step 3: Executing Traffic and Analyzing Data

Starting with the Browser Performance Report he identified the following problems:

Browser Performance Report highlights general Web Performance Optimization problems but also links to Server-Side issues
Browser Performance Report highlights general Web Performance Optimization problems but also links to Server-Side issues
Slow JavaScript when adding event handlers to menus and 3 very slow SQL Calls on the search page
Slow JavaScript when adding event handlers to menus and 3 very slow SQL Calls on the search page

Step 4: Installation of Agents in Production connecting to Dynatrace as Saas

As there is only so much you can test on your local machine Robert decided to put it into production. Instead of collecting the data on Robert’s laptop he decided to test out our offering of Dynatrace as Saas which eliminates the need to provision hardware for the dynaTrace Server. All he had to do was installing the Agent and a Collector on his production windows machine and point that Collector to the Dynatrace SaaS Instance:

Monitoring an ASP.NET Webshop in production sending the data compressed and secure to Dynatrace as SaaS
Monitoring an ASP.NET Webshop in production sending the data compressed and secure to Dynatrace as SaaS

Step 5: Analyzing Live Traffic

Analyzing the Live Traffic via the out-of-the-box dashboards and some of the drill down and diagnostics capabilities showed the performance problems of the real users on the Web site:

Step 1: Understand where your users are coming from and which ones have issues
Step 1: Understand where your users are coming from and which ones have issues
Step 2: Locate the users that claim to have problems. In this case a user from Linz, Austria that really experienced bad response time on some of his page clicks
Step 2: Locate the users that claim to have problems. In this case a user from Linz, Austria that really experienced bad response time on some of his page clicks
Step 3: One of the slow searches of a user was slow because the app pulled ALL search results back in a AJAX response that had to be formatted with a costly custom RegEx implementation
Step 3: One of the slow searches of a user was slow because the app pulled ALL search results back in a AJAX response that had to be formatted with a costly custom RegEx implementation
Step 4: Automatic baselining alerted on occasional response time spikes. From here we click on Response Time Hotspot to see the root cause
Step 4: Automatic baselining alerted on occasional response time spikes. From here we click on Response Time Hotspot to see the root cause
Step 5: A problem with DNS causes the ASP.NET Session Store to run into timeouts which impacts end user response time
Step 5: A problem with DNS causes the ASP.NET Session Store to run into timeouts which impacts end user response time

Have you done your homework yet?

It doesn’t matter if you have a small or big e-Commerce presence and it doesn’t take a performance engineer genius to analyze performance hotspots. It is time to take action by:

#1: Registering for your own Free Trial

#2: Asking questions on the Forum or in a Live Q&A Session

#3: Sharing your PurePaths and get an extended license

#4: Joining a Live Q&A Sessions