Debugging the Interwebs

08.05.2009
We start this week with an interesting question my friend Dan O'Neill (La Jolla, Calif.) raised in a list we both subscribe to. Dan remotely manages some 16,000 networked embedded Linux servers around the world (how cool is that?) as part of his . Dan's problem is this:

"Where can I find a live or nearly live discussion of network outage problems? The unofficial #nanog [North American Network Operators Group] IRC channel has been overrun with kiddies for years so that's not valuable anymore.

"At 8:30pm PDT I noticed that transit across the Internet was exceptionally slow. A look at reported problems between Cogent, Internap, XO and others with packet loss between 3.5% and 6%. By 9 p.m. the problem had gotten worse with Savvis and Qwest reporting similar loss percentages. At 2 a.m. Friday (I happened to wake up and thought I'd check) Internap and Qwest are reporting 6.5% packet loss.

"I smell a DDOS problem on the greater Interwebs but can find no discussion of the issue anywhere. Nothing on Twitter other than ridiculous Tweets of "my Internet is down" or "Comcast sucks" -- information-less blather. Google search of the Web and blogs also shows no conversations. Pointers to the real-time Web of useful conversations about Internet status would be appreciated."

I'm guessing that this is a problem many people have wrestled with, so, anyone got any good suggestions for Dan?

My other topic for this week comes from some development work I've been doing using (I discussed the of this product a few weeks ago).

I was having a problem understanding the actual content of HTTP requests I was sending from my Xcelsius model and what I was getting back. The gods of development must have been watching over me because just as I thought, "There must be a really good monitoring proxy for this kind of stuff," my friend Rumico, who runs the excellent Everything Xcelsius Web site, posted an article on the LinkedIn Xcelsius Gurus group about a tool called .

Fiddler, written by Eric Lawrence (a Microsoft employee though this is not a Microsoft product), is described as "a Web Debugging Proxy which logs all HTTP(S) traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP(S) traffic, set breakpoints, and 'fiddle' with incoming or outgoing data."

Fiddler, which is for Windows only, can be used with any application that supports proxying and, best of all, it's free.

Installation is simple and Internet Explorer gets a Fiddler option in the tools menu while Firefox gets a Fiddler menu embedded in its status bar.

The left panel of the Fiddler interface lists all the captured transactions that have been routed (these can also be saved and reloaded) and clicking on a single transaction in the list displays a detailed analysis on the user interface's right panel.

This analysis includes statistics for either a single or all selected transactions, an auto-responder that will replay saved responses to specific requests, a tool for hand-constructing responses, filtering to exclude specific transactions, a very powerful event-driven scripting language, and a whole slew of content inspectors, which include a breakdown of the request header, a text-only view, a hexadecimal view, an analysis of authorizations used, a "raw" or uninterrupted view, and an XML interpretation.

There's also a timeline view, which is useful when filtering is used as the graphical entries are linked to the actual transactions they represent. This lets you jump from the timeline to the detailed analysis of any transaction.

are also available from both the author and third parties (the is well documented) and include custom inspectors to provide syntax highlighting for FiddlerScript (Fiddler's scripting language), HTML, Javascript and XML as well as a content blocker and an image gallery (this fetches and displays all images found in the selected transactions).

Fiddler is a gem of a tool. Well documented, well featured, extensible, and, above all, incredibly useful. I'll give Fiddler 5 out of 5.