October 29, 2003

GKrellM: Geek eye-candy, monitors, and more

Author: Joe Barr

Bill Wilson's little "single process stack of system monitors" known as GKrellM has become so popular some refer to it (or just use it) as geek eye-candy rather than as the very nice performance monitoring tool that it is. In fact, GKrellM is so popular it may have more plugins than other projects have users. Actually, I think it's not so much that GKrellM has morphed itself into eye-candy so much as that since the very beginning it's been designed as a Swiss Army knife kind of utility.

Let's start by breaking down the name. The G is for GTK, or Gimp Toolkit. A krell is a unit of measurement used in the horizontal display of various measurements. If you were monitoring the amplifier in the movie Spinal Tap, for example, while it was running wide open, krells would be seen along the entire length of the meter. Finally, the M is for Monitor.

Reading the Changelog all the way back to the very first entries shows that GKrellM began life in July of 1999, when Bill Wilson ported an earlier xforms monitor program to Gtk/Imlib. Must have been a good job of porting, too, because Brian Almeida began packaging it for Debian (unstable) in August of that same year. That was version 0.6.3-1. It showed up on freshmeat.net that month, and it's been adding enthusiastic users, plug-ins, and themes ever since.

Red Hat 9.0 includes GKrellM version 2.1.5-3, but I found a more recent version on Matthias Saou's excellent RPM repository freshrpms.net. I grabbed a RH9-specific RPM for release 2.1.21-1 there and installed it. More and more these days, freshrpms.net is where I turn first for my Red Hat 9.0 RPMs.

The default configuration of GKrellM (shown below) gives you the following information: machine name, date, time, graphics CPU, proc and disk utilization, Ethernet activity, timer, memory and swap activity, and uptime. But that's just the beginning. The thing that makes GKrellM such a popular play-pretty with geeks is that it is almost infinitely configurable, extensible, and themeable.

You can configure GKrellM by right-clicking on the monitor and selecting Configuration from the drop-down menu, or at anytime while GKrellM has the focus by pressing the F1 key. The configuration menu lets you address general options, built-in monitors, plug-ins, and themes.

Under general options, for example, you can set the periodicity of monitor updates and the width of the GKrellM display. You can also choose to display/not display the Hostname and System name, remember the screen position and use the same one next time the program is run, and also allow multiple instances to run concurrently. General properties include sticky-state, placement above or under other windows, dock or panel window, taskbar inclusion, and other choices. That's quite a bit to start with, but it's not nearly the whole of it.

Under the Builtins options you find configuration categories for Sensors, Clock, CPU, Proc, Disk, Internet, Net, Memory, File System, Mail, Battery, and Uptime. The Internet options are particularly nice. You can monitor specific ports (or port ranges) and control how often the monitor is updated.

Curious about how many probes you're getting on those troublesome Windows NetBIOS ports? GKrellM can tell you. Once at the Configuration screen, click on Builtins->Internet. Then, under Data 0, enter "NetBIOS" for the label, 137 as port 0, and 139 as port 1, and check the "Port 0-1 is a range" box. Now click add, and you can see the new "NetBIOS" monitor immediately in the GKrellM display.

There are dozens of plug-ins: 82 monitoring plug-ins are listed on the GKrellM homepage, along with another half dozen for configuration or documentation. I didn't know where to start, so I went back to freshrpms.net and took the easy way out by downloading three RPMs containing plug-ins: one for utilities, one for miscellaneous, and one for multimedia plug-ins.

After downloading and installing gkrellm-plugins-utils-2.1.12-fr2.i386.rpm and restarting GKrellM, I found I had three new plug-ins installed: Reminder, GkrellShoot, and gldeds. The most interesting of the three was GkrellShoot. It consists of a screen-saver-like image in a monitor (selectable, of course) with Lock and Shoot buttons beneath it. Clicking on Lock locks the desktop. Clicking on Shoot lets you capture a screen image, single window, or entire screen. I hacked the configuration to use the Gimp to display the screenshot instead of ee.

Next came gkrellm-plugins-misc-2.1.12-fr2.i386.rpm. After installing that collection I noticed three additional plug-ins: Flynn, GKrellWeather, and Background Changer. And there are plenty more out there where those came from.

More on page 2...
Did I mention themes? I grabbed gkrellm-themes-2.1.8-fr1.noarch.rpm from freshrpms.net and installed it. That gave me a choice of more than 100 themes to choose from. You can cycle through from inside the configuration menu or you can simply right-click on GKrellM and take the Theme shortcut. It allows you to page-up or page-down through the list until you find your heart's desire.

Naturally, I didn't find the one I wanted. I had to download that from the GKrellM home page. It's one Bill Wilson put together for testing a new version of GKrellM a while back.

The image you see below is an example of this theme. Naturally, I used the GKrellM plug-in to take the snapshot.

I chatted with Bill Wilson -- author of GKrellM -- in a brief email interview. Bill told me that while he has a Master of Electrical Engineering degree from Rice University, his primary occupation is as an investor. His interest in performance monitoring may have begun years ago when he built a 68030 computer and designed some state-monitoring LEDs into the mainboard. He said that after Linux came on the scene, he began using PC compatibles, but he missed knowing exactly what state his compiles were in by watching the LEDs. I guess it goes without saying that that is the itch he was scratching when he developed GKrellM.

I asked Bill if the xforms project which (according to the ChangeLog) was the basis for GKrellM was still around:

I still have the source for it, but it's not a program I ever released publicly. I called it xfconsole and it was just a program I wrote to satisfy my need. I actually used it for a year and a half before it dawned on me that if it was so useful to me, I really should throw it out there and see what happens. So I used that as an excuse to learn Gtk, and GKrellM was born.

Then I asked him if he ever expected GKrellM to become so popular:

You know, when some days go by without getting any gkrellm email, I look at the list of plug-ins and think "well, I know somebody has to be using the damn thing, so maybe it's a good sign that most of the bugs are gone!". I really wasn't sure about the popularity angle and I only thought that it might have a good chance to be useful to a lot of people because it was useful to me. Later I realized I had pulled a fast one by making it look fairly nice as well as being useful, and I think that made it appeal to a much wider group.

I also asked what the future holds for him and for GKrellM. He said:

There's a couple of things I want to finish off (mainly plug-in capability for the gkrellmd daemon), but I've really reached the point where according to friends and family I'm spending only a reasonable amount of time on gkrellm. Otherwise I can summarize the busy aspect of my life by saying I'm tracking my investments, working on some woodworking and electronics projects (I've just been getting another program, gsch2pcb, pretty much done), and playing basketball, which has to qualify as being busy since I frequently use it as a reason for putting off some other chores.

I agree with Bill as to the reasons for GKrellM's popularity: its looks and usefulness are a strong attraction. But there is more. It also satisfies the deep-seated geek need for tweaking and configuring. If you're geek like me, and haven't tried it yet, get it. Try it. And let me know what you think about it.

Category:

  • Free Software
Click Here!