O’Reilly Velocity OnLine Conference is scheduled for March 17 and Steve Souders was kind enough to invite me to give a talk titled “Keeping Track of Your Performance Using Show Slow“.
Here’s more information about the conference:
O’Reilly Online Conferences give direct access to our speakers, who can address your most pressing questions. You’ll also be able to interact with hundreds of other engineers, developers, sysadmins, architects and more – all from the comfort of your desk.
Registration is FREE. See the full agenda: http://conferences.oreilly.com/velocityonline
Custom Metric Beacon allows every instance of ShowSlow to configure metrics it wants to record in addition to YSlow and PageSpeed ranking.
Once metric beacon is configured, simple GET/POST requests can be sent to the beacon with some numeric value which gets recorded and displayed over time on a graph.
You can also click on “Custom Metrics Beacon” on beacon list page (e.g. http://www.showslow.com/beacon/ for public instance) to see interactive form for manual submission.
Custom Metrics can vary depending on your needs, good examples include:
- bounce rate on the page (from your analytics software)
- amount of results on search page (from system configuration)
- server load (from backend monitoring tool)
All these metrics are specific to your needs and you have to write some tools to collect them, but ShowSlow will be able to aggregate them all along with the rest of the data.
For configuration docs, see Installation page on the wiki.
A few people on the list asked me how to automate Show Slow monitoring and dug up all the magic I used on my monitoring farm and try to summarize it here:
Here are a few steps you’d want to follow:
Set up separate browser profiles – one for Google Page Speed and one for YSlow.
To learn how to set up a profile, take a look at Mozilla’s documentation: Managing profiles
Install extensions in respective profiles
Install Firebug for both profiles and Page Speed and YSlow in their respective profiles (extensions are installed and configured separately for each profile).
Set default Firebug tab
In each profile, set up it’s particular extension to be a default Firebug tab.
To do that, you need to set extensions.firebug.defaultPanelName property to:
- pagespeed for Page Speed
- yslow for YSlow
Configure to run measurements automatically when browser starts
- extensions.PageSpeed.beacon.minimal.autorun = true for Page Speed
- extensions.yslow.autorun = true for YSlow
Run Firefox periodically
Next step is to create a list of URLs you’d like to test on a regular basis and run Firefox periodically.
You can use a simple script I bundle with Show Slow:
If you’ll have any troubles, please feel free to post your questions to the discussion group and I’ll be happy to answer them:
I’m planning to add better URL management to Show Slow itself so your automation scripts can fetch a list of URLs to process right from your Show Slow instance and some other tools can post URLs to be monitored.
There is probably more to be done to simplify this automation – from better shell scripts to additional Firefox extensions. More stuff will come along eventually.
I decided to extend Google Page Speed support in Show Slow to keep track of metrics the same way it’s done for YSlow.
You can see results at showslow.com – here’s example with Page Speed results only:
And here’s the example for both Page Speed and YSlow together:
Version 0.3 is released and can be found in SVN here:
Please upgrade and send your comments and questions to the support group here:
Google PageSpeed 1.2 is now able to send data to a beacon (see bug #58) so I added some minimal support for it into ShowSlow that you can get from the trunk.
Support is minimal and I only display PageSpeed’s overall rank and page load time (which looks like only initial request load) and it seems that there is no way to lunch the test automatically. But it’s a great first step and that I might need to rewrite the whole thing for generic beacon API…