5 Steps to setup ShowSlow as Web Performance Repository for dynaTrace Data
Alois Reitbauer explained in detail how dynaTrace continuously monitors several thousand URLs and uploads the performance data to the public ShowSlow.com instance. More and more of our dynaTrace AJAX Community Members are taking advantage of this integration in their internal testing environments. They either use Selenium, Watir or other functional testing tools to continuously test their web applications. They use dynaTrace AJAX to capture performance metrics such as Time to First Impression, Time to Fully Loaded, Number of Network Requests or Size of the Site. ShowSlow is then used to receive those performance beacons, stores it in a repository and provides a nice Web UI to analyze the captured data over time. The following illustration shows a graph from the public ShowSlow instance that contains performance results for a tested website of a period of several months:
As we received several questions regarding installation and setup of this integration I thought it is time to write a quick Step-by-Step Guide on how to use a private ShowSlow Instance and dynaTrace AJAX in your test environment. I just went through the whole installation process on my local Windows 7 installation and want to describe the steps I’ve taken to get it running.
Step 1: Download Software
Sergey – creator of ShowSlow – provides a good starting point for our installation: http://www.showslow.org/Installation_and_configuration
I started by downloading the latest ShowSlow version, Apache 2.2, PHP5 Binaries for Windows and MySql. If you don’t have dynaTrace AJAX yet – also go ahead and get it from our AJAX Edition Web Site.
Step 2: Installing Components
I have to admit – I am not a pro when it comes to Apache, PHP or MySql – but – even I managed to get all that installed and configured in minutes. Here are the detailed steps:
Initial Configuration of Apache
- During the setup process I configured to run Apache on Port 8080 in order to not conflict with my local IIS
- Update Apache’s httpd.conf to let the DocumentRoot point to my extracted ShowSlow directory
- Enable all modules as explained in Sergey’s Installation and Configuration Description. That is mod_deflate, mod_rewrite, mod_expires
Installing the Database
- Use mysql command line utility and follow the instructions in Sergey’s description. Before running tables.sql I had to manually switch to the ShowSlow database executing the “use showslow” statement
- Rename config.samples.php in your ShowSlow installation directory to config.php and change the database credentials according to your installation
Configuring PHP
- In my extracted php directory (c:\php) I renamed php-development.ini to php.ini
- Remove the comment for the two MySql Extensions php_mysql.dll and php_mysqli.dll
- Set the extension_dir to c:/php/ext
- If you want to use the WebPageTest integration you also need to remove the comment for the extension php_curl.dll
- In order for PHP to work in Apache I had to add the following lines to httpd.conf -> following these recommendations
- LoadModule php5_module “c:/php/php5apache2_2.dll” -> at the end of the loadmodule section
- AddType application/x-httpd-php .php -> at the end of IfModule
- AddType application/x-httpd-php .phtml -> at the end of IfModule
- PHPIniDir “c:/php” -> at the very end of the config file
- Change DirectoryIndex from index.html to index.php to default to this file
Step 3: Launching ShowSlow
Now you can either run Apache as a Windows Service or simply start httpd.exe from the command line. When you open the browser and browse to http://localhost:8080 you should see the following
Step 4: Configure dynaTrace AJAX Edition
dynaTrace AJAX Edition is configured to send performance data to the public ShowSlow instance. This can be changed by modifying dtajax.ini (located in your installation directory) and adding the following parameters to it:
-Dcom.dynatrace.diagnostics.ajax.beacon.uploadurl=http://localhost:8080/beacon/dynatrace -Dcom.dynatrace.diagnostics.ajax.beacon.portalurl=http://localhost:8080/
These two parameters allow you to manually upload performance data to your local ShowSlow instance doing through the Context Menu in the Performance Report:
dynaTrace AJAX Edition will prompt you before the actually upload happens in order to avoid an accidental upload. After the upload to the uploadUrl you will also be prompted to open the actual ShowSlow site. If you click yes a browser will be opened navigating to the URL configured in portalUrl – in our case that is our local ShowSlow instance. Now we will see our uploaded result:
Step 5: Automation
The goal of this integration is not to manually upload the results after every test run – but to automate this process. There is an additional parameter that you can configure in dtajax.ini:
-Dcom.dynatrace.diagnostics.ajax.beacon.autoupload=true
After restarting dynaTrace AJAX Edition the performance beacon will be sent to the configured ShowSlow instance once a dynaTrace Session is completed. What does that mean? When you manually test a web page using dynaTrace AJAX or whether you use a functional testing tool such as Selenium in combination with dynaTrace AJAX a dynaTrace Session is automatically recorded. When you or the test tool closes the browser the dynaTrace session gets completed and moves to the stored session folder. At this point dynaTrace AJAX automatically sends the performance beacon to the configured ShowSlow instance.
If you want to know more about how to integrate tools such as Selenium with dynaTrace then read these blogs: How to use Selenium with dynaTrace, 5 Steps to use Watir with dynaTrace
Want more data and better automation support?
The integration with ShowSlow is a great way to automate your performance analysis in a continuous manner. The performance beacon that gets send to ShowSlow can of course also be used by any other tool. The beacon is a JSON formatted object that gets sent to the configured endpoint via HTTP POST. Feel free to write your own endpoint listener if you wish to do so.
dynaTrace also offers a solution that extends what is offered in dynaTrace AJAX and ShowSlow. If you need more metrics and better automation support check out Web Performance Automation. If you want to analyze more than just what’s going on in the browser check out Server-Side Tracing, End-to-End Visibility. If you want to become more proactive in identifying and reacting on performance regressions check out Proactive Performance Management.







Hi,
Took a while to get the basics on this done (The directions need a re-write – I’ll provide it along the way, both by editing the referenced site and posting here).
But – there’s a push here to expand the ShowSlow results by including the individual Dynatrace Ajax sessions and the analysis inside a web page.
Are there any plans to make a web browser based viewer, or open the exe to calls from a web page? I can see putting in Divs and individual sessions, or an AJAX call to the exe, but not sure how that might be done, or if we can call the exe as a web module or AJAX component and feed it sessions from a modified ShowSlow DB.
Hi Bill
Let me know what you had to do different and I will change the text so that others can benefit from it as well.
Right now there are no additional plans to exted the automation interfaces of dynaTrace AJAX. We do however offer the dynaTrace Dev Team Edition which is targeted for automation use cases: http://ajax.dynatrace.com/ajax/en/content/upgrade-automate.aspx