Introducing Jiffy: Real-World Browser Instrumentation and Reporting
During 2007, we shipped a lot of new features on WhitePages.com and other sites in the network. While each of these improved the functionality and usefulness of our service for our customers, we weren’t doing a great job tracking the performance impact of these changes – and so our site was getting slower. Performance is a feature too and we had ignored it.
So we grabbed Firebug and started loading our pages over and over again, looking for patterns. This anecdotal foray just sent us on wild chases, so we backed up and looked for a system that would help us see what our customers were seeing, and allow us to measure every little thing – when individual third-party components loaded, how long it took the search forms to render, etc.
We didn’t find one. We found some third party tools from the usual suspects that sell performance monitoring services – we even implemented one of them – but we found that they weren’t flexible enough to give us the data we needed, slowed down our site, and weren’t real-time enough for our taste.
So for Hack Week, Don & Jack hacked together a project that would log how long it took to render each page in the proxy logs, and then report on the performance. Later in the year, Ben came on board and added the ability to capture individual moments on the page and write those to the proxy log as well, Devin designed the database schemas and rollups, John and Travis made sure it worked, and I… did some things. So all told, we built this thing that we now use that tells us how long some things take to happen. No single part of this system is rocket surgery, but the entire combination is truly something that we haven’t found in the market from anyone – paid, free, self-hosted or service-hosted. We’re proud of the work and already see benefits from it.
Additionally, late last year, we were discussing how we wanted to give back to the open source community: as a LAMPP (Linux, Apache, MySQL, PostgreSQL, & Perl) shop, open source systems have played a core role in our company’s technology stack. Individuals on the WhitePages team have occasionally contributed to projects, but we didn’t have anything significant that we as a company brought to the table.
So today, we’re releasing that performance toolset as an open source project, under the Apache 2.0 license, with the genuine hope that other web publishers get benefit out of the ability to gather real-world measurements from all of their users about the timings of individual aspects of their pages. Jiffy is the name for the toolset. There’s a whole other blog post about the naming process, but a jiffy is a standard term for a small unit of time, and that’s what we’re helping you measure.
We announced the public availability of Jiffy this morning at the O’Reilly Velocity Conference, with a Plenary session following Bill Coleman (the B in BEA Systems – I think of myself as the R in WhitePages.com) and a new release from Keynote Systems. The code is linked from code.whitepages.com (also a new site for us) - the slides are there as well, the video will be available soon. We’ll have more to say about Jiffy in the upcoming days, but in short – take a look, let us know if you have questions (you can use the Jiffy Google Group so everybody can see them, but of course we’ll be here too), and we look forward to seeing how others use Jiffy for their sites!