Today I tried five different methods of setting up HTTP transaction monitor. These can get very complex, but like any technician, I wanted to jump in and get started with a simple use case. In the process, I got a feel for each system's ease of use.
Why You Want HTTP Transaction Monitoring
A modern website will include multi-step forms that require specific inputs along the way. Take the example of a shopping cart. A simple order process would include these steps:
- Click "add to cart" button
- Click "proceed to checkout" button
- Enter contact info and billing info
- Click "complete order"
An unexpected error on any one of these screens could prevent your site from earning revenue. A programmer might upload a code error by mistake. More commonly, your payment gateway could go down, causing timeouts in the last step.
The Problem
It's tricky to capture all the inputs and the logic flow. The web monitoring companies are trying to take something relatively complex and make it easy. Today I experienced the way five different companies attempted to solve this problem.
Alertra: Script It Yourself
Alertra offers a proprietary script language called ASL. It allows the programmer to mimic basic HTTP GETs and form POSTs, but there's no way to mimic user clicks.
I threw together a quick script that was no better than a simple content check. I had previously worked with some of the more advanced tools below, and I was surprised that Alertra did not check the syntax of my ASL code as I saved it in their web form. Instead, I had to save the code and validate that the my scripted monitor had run correctly. Trying to cobble together a shopping cart process could take some time.
set CONTENTSTRING="Web Server Monitor Report" dns "webservermonitorreport.com" tcp $HTTP_PORT http get,redir "/" if not $CONTENTSTRING in $CONTENT then error "Content error: Content string '" + $CONTENTSTRING + "' not found in page content."
Leverage Existing Tools
WatchMouse: JMeter and "Badboy"
WatchMouse integrates with JMeter, an open-source tool that's commonly used to generate load tests. I'll admit that I do not have extensive experience with JMeter, but I have created a few successful tests in the past. I spent about 45 minutes trying to produce a .JMX file that would validate in WatchMouse's system.
After that, I downloaded the weirdly named Badboy software that comes recommended by WatchMouse. Badboy seemed to be a dumbed-down version of JMeter. I tried for another 45 minutes to create a .JMX file that would upload to WatchMouse, to no avail. Here's the Badboy tool in action.
Here's the error message I saw on WatchMouse after uploading the file produced by Badboy.
Update: I spent another 15-20 minutes attempting to get the WatchMouse site to accept a script generated by the Badboy software. I was able to make it work by dumbing down the test to a single page load with a content check.
Part of the problem lies in the fact that each page request also creates two subrequests for the Google ads. I tried a number of solutions, including editing the .JMX file by hand to remove hundreds of lines of unnecessary code. Still, I was not able to get it perfect, and I'm currently running without a transaction monitor on WatchMouse. That's unfortunate because their reporting is incredible.
AlertFox: A FireFox Plugin to Generate "iMacros"
AlertFox offered a FireFox plugin to generate its proprietary scripting language called iMacros. The plugin installed quickly, and I was able to create a basic user authentication script within minutes. This was one of the easiest tools to use.
Dotcom-Monitor: Install a Custom Program
Dotcom-Monitor uses a Windows executable called Macro Recorder 2. It installed quickly on my Windows 7 laptop, and it was easy to use. The application prompts the user for the most obvious options: a URL upon start-up and the text you want to see in the content check for that page.
Strangely, Macro Recorder 2 does not include a help file, but I saw some cool buttons called "Key+Mouse" and "RIA Picture" that hint at advanced browser recording features. I'll try those out later.
Like AlertFox's Firefox plugin, Dotcom-Monitor's program generated script that I pasted into web forms to create the application monitor.
BrowserMob: Everything Plus the Kitchen Sink
BrowserMob offers a variety of options for custom application monitoring, the most interesting of which are Selenium IDE and writing JavaScript by hand. I have worked with Selenium IDE in the past, so I felt really comforatble firing up Firefox and creating a test script.
Selenium generates scripts in a simple HTML table structure that I uploaded to BrowserMob. Here are a few lines that open the home page, perform a content check and click the search button.
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>verifyTextPresent</td>
<td>Web Server Monitor Report</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=edit-search-block-form--2</td>
<td>monitor</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>id=edit-submit--2</td>
<td></td>
</tr>
This gets translated into JavaScript that you can then edit via web forms on the BrowserMob site.
var step = browserMob.beginStep("Step 1");
selenium.open("http://webservermonitorreport.com/");
selenium.verifyTextPresent("Web Server Monitor Report");
selenium.type("id=edit-search-block-form--2", "monitor");
browserMob.endStep();
browserMob.beginStep("Step 2");
selenium.click("id=edit-submit--2");
selenium.waitForPageToLoad(timeout);
selenium.verifyTextPresent("Why You Need to Monitor Your Web Server");
browserMob.endStep();
Remember the problem that occurred above with WatchMouse's script generation tools? I was not able to easily exclude Google AdSense requests from the monitor. BrowserMob figured out a way to make it easier for us. They turned this technically complex issue into a checkbox. Check it out.
Conclusion
The FireFox plugins from AlertFox and BrowserMob worked most easily for me and produced a working transaction monitor in minutes. This is my favorite approach, leveraging open-source tools like FireFox and JMeter, while allowing manual tweaking of the source code. Also, for anything written with Selenium or JMeter, there's a pretty good shot you can get support on a programmer's forum like StackOverflow.
Most of us don't mind writing code, but Alertra's ASL system seems a little dated. The site does not check your syntax until after upload. It took a minute to figure out a simple question like, "Which operator do you use to concatenate strings?" (ASL uses the C/JavaScript-style plus sign.)
Small and medium-sized businesses will appreciate a tool that's easy to use, and Dotcom-Monitor's Macro Recorder 2 fits those requirements. I wonder about the fact that it runs as a Windows executable. Yes, Windows runs on 90% of the world's laptops and desktops, but the people setting up server monitors tend to be security conscious, and we avoid installing random software that comes with digital cameras and even monitoring services.
Which company do you think has the best tool for creating a custom HTTP transacation monitor? Add an anonymous comment below, or take our Web Server Monitoring Quiz.







