The History of Cricket

By Jeff Allen

Cricket did not spring, fully formed, from my fingers late one night. Granted, most of it did come about late at night, but that's just the way I work. Cricket is the result of using and in some cases being limited by MRTG, all the while getting more and more addicted to it.

RRD Tool is Born

In January 1998, Tobias Oetiker released some of the first versions of the RRD tool. I took a look at this work and immediately recognized that half of my problems with MRTG would be solved by switching to using RRD as the backend, instead of rateup, the old backend for MRTG. RRD was designed to be much more flexible and much higher performance than rateup. However, RRD did not promise to make any dent at all in the complexity of our MRTG configuration, nor was it immediately obvious how we could extend MRTG to take advantage of RRD's new flexibility.

The Config Tree is Born

During the Spring of 1998, Tobias continued to work on RRD, but little work was being done to integrate it into a future version of MRTG. There are only so many hours in a day, after-all, and Tobias does need to earn a living too. I kept thinking about the problems facing WebTV, and how we could best put to use the really neat RRD tool while solving our config file (and, to a lesser extent, parallelization) problems. The answer was the config tree. After writing a small proof of concept, I sold my bosses on paying a contractor (Emmett Hogan) from Global Networking and Computing (http://www.gnac.com) to implement the design for an RRD frontend using the config tree idea. This project was to be a six week job, starting around July, 1998. This new frontend for RRD came to be called Super MRTG, or SMRTG.

As is often (almost always?) the case, it was very hard to predict how much time would actually be required to do the job. During Emmett's work, we learned a bunch more about how we wanted the final system to work. Emmett's finished product was still not ready to replace MRTG here at WebTV, and we were not ready to release it to the world. I took over SMRTG and added the features we needed to put it into production at WebTV. I also released a few versions of SMRTG to the MRTG-developers mailing list for review.

About this point a number of things happened. First, I realized that I was really unhappy with the name SMRTG for several reasons. It was too cumbersome, the project is only tangentially about routers at this point, and there was not a line of MRTG code in SMRTG -- it only looked the same. Thus, we needed a new name. I called it Cricket because it popped into mind. It's short and catchy, and there seems to be no other piece of network management software called Cricket. A very long time ago, there once was a really cool piece of graphing software for the Mac called Cricket Graph. That might have tickled my subconscious, though I only remembered it once people started referring to the output of Cricket as "Cricket Graphs".

Also, Tobias and I talked about Cricket's, RRD's, and MRTG's futures. We agreed that Cricket and RRD made good partners, but that RRD is useful on it's own too. (Thus, RRD and Cricket will be distributed separately for the foreseeable future.) We also agreed that it made no sense for him to duplicate my effort on the frontend, so it's unlikely there will ever be a version of MRTG that uses RRD as it's backend. Instead, we will try to help people convert to using Cricket if they need the performance of RRD. (And who doesn't!) As you can see from this history, Cricket would not exist if it wasn't for MRTG and RRD, two of Tobias' ultra-cool inventions. I am deeply indebted to that giant for letting me stand on his shoulders.

Cricket was unveiled to the public as part of Usenix's First Conference on Network Administration. I submitted a paper on Cricket there, and released a version that people started to rely on. During the rest of 1999, the Cricket-users mailing list slowly grew from 100 through 400. During 1999 Cricket changed little, even though lots of users submitted patches. That was mostly due to me getting a new job and Cricket losing some of it's novelty value for me.

I gave an invited talk at Usenix's LISA 99 which featured Cricket, along with other tools I have worked on at WebTV. At LISA, I was invited to give a talk on Cricket at SANE 2000. Word of Cricket spread, and it was written up in both Sysadmin Magazine and WebReview.com.

Around January 2000, I decided that the Cricket users deserved to have better support, and what better way to do that than to turn the project over to the community at large? I got a project on Sourceforge and worked, slowly, through the spring of 2000 to move things over. My goal was to release 1.0.0 in time for the talk at SANE 2000. More importantly, my goal was to setup a CVS tree that would allow us to actively develop Cricket going forward. I seem to have succeeded. My co-worker Adam Meltzer has already been working hard at adding features to the 1.1.x branch, which will be ready for beta tests this summer.

Today, in May 2000, Cricket is installed on three separate servers at WebTV and is monitoring about 9000 targets, with over 50 different target types represented. Cricket takes data from SNMP, shell scripts, and files. Data gathered via scripts comes in via syslog, application-specific event streams, HTTP, rcp, and 2400 baud serial. WebTV operations folks know that if they want to know the health of something they should ask Cricket, and if it's not there, they should ask "Why Not!?!". During peak times, Cricket has time and again given us unprecedented visibility into the health of the WebTV Service. It has paid for itself, and we genuinely hope it will be as productive at your site.

Cricket version 1.0.5, released 2004-03-28.

Copyright (C) 1998-2000 Jeff Allen. Cricket is released under the GNU General Public License.