Akamai Debugging mode

This has popped up in the office here a few times, it would be AWESOME if we could insert a custom Pragma: request header in to help debug Akamai issues.

Akamai have a bunch of keywords you are list in a Pragma: request header which prompts the edge nodes to return detail of the requested object. This is really handy for tracing down poor performance as an Akamai (client → edge) issue, or when an edge miss occurs the performance of an origin request.

For example, a request with:

Pragma: akamai-x-cache-on

Adds to the response header:

X-Cache: TCP_MEM_HIT from a24-143-199-151 (AkamaiGHost/6.3.4.1-7779626) (-)

Not sure how simple or difficult this may be with the browse automation but would very much love to be able to toggle this on/off for a test.

Marcus

It shouldn’t be too hard to add to the scripting capabilities (where most of the other advanced features are buried). Trying to figure out how to incorporate it into the UI for normal usage would be the harder part. I’m already manipulating the headers for the user agent overrides so adding additional headers shouldn’t be too hard. I’ll see if I can whip something up today (been on my to-do list for a while).

ok, the custom header support is in place now (accessed through scripts). Should be fine for this use case but the big caveat is that the headers will be applied to every request regardless of domain. You can add headers or override existing headers.

The docs are here: http://www.webperformancecentral.com/wiki/WebPagetest/Scripting#addHeader

A sample is probably more useful:

setHeader	UA-CPU: none-ya
addHeader	xPat: My-Header
addHeader	Pragma: akamai-x-cache-on
navigate	www.engadget.com

Here is what the headers look like from a test with that script (akamai debugging worked): http://www.webpagetest.org/result/110401_46_9f142dbd996004c89a0d1e952cbcc63c/1/details/#request3

Be responsible! Hopefully there aren’t any hosts that you can still take out with malformed headers but if I get any complaints I may have to disable the support on the public instance (and your IP addresses are logged for each test anyway :-)).

Thanks,

-Pat

Thanks Pat this is absolutely PERFECT!

I owe you a beer :slight_smile:

Cheers,
Marcus

This is FANTASTIC, Pat. Marcus works with us at Etsy and I have been meaning to ask for exactly the same thing. I’m glad he beat me to it, and really excited to see this in action!

Thank you!
Mike

This is working great on Chrome for HTTP and HTTPS requests, but does not seem to be working for IE for HTTPS requests. Will support for that be upcoming?

Desmond