Posted November 11, 2009on:
Faban 1.0 has just been released. This is a major milestone for this open-source workload creation and test framework. Faban is widely used by many performance geeks to performance test various types of server applications. Amongst open source tools, Faban is unique in that it not only provides a framework to create and run performance/load tests, but also has robust functionality to run monitoring tools. It collects all sorts of configuration information as well to truly help performance engineers keep track of configuration and tuning settings.
Here are some major new features in 1.0 which I think will make Faban a very attractive proposition (when compared to the likes of some very expensive proprietary tools).
Automated Form Generation
If you have used Faban before to create workloads, this is the feature you probably have been craving. But let me explain for those who have never used Faban.
Unlike most other tools, Faban does not provide a standard GUI to drive workloads. Instead, a workload developer needs to create a custom form for each workload using XForms. This provides great flexibility and power in designing workloads as you can tailor the information you collect to the workload. On the other hand, editing XForms is a nightmare and error-prone and most benchmark developers spend the most amount of time in this one task. No longer. Faban 1.0 auto-generates the XForms for you from your run configuration file (run.xml) at deploy time. How cool is that ! And the generated forms are hard to tell apart from good hand-crafted ones – they are that good !
Dynamic Services and Tools
Faban always had the concept of Services (meaning objects that were responsible for managing a particular server application like Oracle, Apache etc.) A Service is used to start/stop/restart a server, grab it’s configuration and error logs etc. But to add a new service, one had to add a class to the Faban code. This meant a user had to not only understand Faban code but also had to get the new service code committed. The same was true for monitoring tools (For example, I added ‘mcstat’ – a tool for monitoring memcached but this had to go in as part of the Faban harness code).
With 1.0, both services and tools can be dynamically deployed. This means you can write your own services and tools and deploy them in your own environment. What’s more – Faban comes with several sample services to get you started. These include services for Apache, Glassfish, Memcached, MySQL, Oracle etc. I have added services for Thin and Nginx as part of Olio using this framework. See the documentation for more details.
Tags and Feeds
As the number of tests and results grow, we have all faced the situation where we can’t find a particular run result. Tags can greatly help here. Faban 1.0 has web2.0 features including tags and RSS feeds. You can add tags when defining a new test (actually it’s easy enough to add them later as well, so you can go back and tag all your old runs if you want to). To find a particular test (or series of tests), you can do a Tag Search from the main Faban page.
You may wonder what in the world is the use of a Feed in a performance tool ? Well, if you kick off a series of runs before you leave work, you can sign up for the RSS Feed (located at the top right corner of the screen). This will send you an email whenever a run completes. So even if you don’t have access to your test systems, you can view the results anywhere – perhaps on your iPhone while you are at dinner ?
This post is already too long. I’ll cover the other new features in a future post. But meanwhile, do check out Faban 1.0.