tinderboxJsonApi 0.1

Many people have told me that they were excited about the JSON Tinderbox feed, but were quickly discouraged from doing anything fun due to the scary data structure that it presents; it's a straight dump of what the server uses, and is obviously optimized towards making a waterfall display (plus, it's just plain weird).

I set up an enhanced waterfall as an example a while back, but it's really hard to take it further without spending a lot of time digging around inside the tinderbox_data object.

I've often wished that I could just sort by column in Tinderbox, so instead of doing yet-another one-off script I put together a little web app that gives you a sortable table of the latest (non-talos) perf data: Analysis paralysis

Click on the headers, and you get data sorted by your criteria. The data is real-time, but does not auto-reload.

I started to hit a wall almost immediately due to the machinations required for the tinderbox_data structure, so I stepped back and took some time to write a tboxJsonApi.js instead of dealing directly with the data from Tinderbox. This lets me write code like:

<script src="http://tinderbox.mozilla.org/Firefox/json.js"><script>tree = new Tree(tinderbox_data);builds = tree.getBuilds();for (i in builds) { build = builds[i]; build.getName(); build.getStartTime(); build.getStatus();</script>

You can get checkins for a particular build, or test results (the scrape data is processed, right now it only supports anchor tags with "key: value" format link text, which is why Talos isn't yet supported).

There's a bunch more stuff I want to do before this will be generally useful to me, e.g. CSV export, merging all build, perf and test data for a checkin into one row, etc. but I think it's obvious that we could have more useful tools for tracking and analyzing the absolute mountian of data that mozilla.org produces every day.

Let me know if you find this useful, and/or have any questions or ideas for improvements. I was able to throw this all together in a few hours this evening, because I spent so much less time wrestling with data structures and more modeling the kind of app I wanted.