Colgui
Introduction
This utility was initially developed for testing collectl's socket communications
code and for becoming more familiar with perl-Tk. What it does, it does reasonably
well but given the overhead of having to manually draw all the graphics with Tk,
a better solution might be a reimplementation in java or perhaps some other graphics
language. If anyone wants to raise their hand and develop such a tool, I'd be very
supportive of the effort.
One known limitation of colgui is that by having to manually build the plots and also
trying to keep things somewhat simple, all the plots have a fixed y-axis limit controlled
by the plots definition file. In some cases like network interfaces or memory, colgui
can determine the limits at startup. While this works for most situations this a problem
for devices with unknown limits such as storage arrays which can range in limits from
under 100MB/sec to well over 1GB/sec and there is no way to know what the limits are.
Therefore one will have to customize the definitions file with values appropriate to your
system if you care about these numbers. One more good reason for a reimplemantation.
Using Colgui
The main philosopy behind colgui is to allow someone to use the same types of switches
as collectl to select their graphics and intervals, so the command colgui -scn -i2
will display both cpu and network graphics every 2 seconds for the specified systems.
The plots it displays are actually driven off the same plot definitions file that colplot
uses and so if you want to select one or more specific plots by name you can still do so with -p plotname(s) or even define your own plots.
Both -s and -p can be mixed with the same command. If you don't specify any
switches, like collectl you'll get the default behavior of colgui -scdn -i1 as seen here:
You should note a couple of things:
- the very top of the window shows the refesh interval and width of x-axis as a time
duration which in this case is 1 minute
- each plot shows the host name in its header along with the names of each display
line in the same color as it's displayed
- there is not really room enough to list all line names unless you make the plot
wider
- you can make the plots wider with -xaxis which
allows you to specify the plot width in pixels
Colgui will start a new row of plots for each system but will also limit the number of
plots on a specific row so a system's plots may actually take multiple rows. If you want
more than 3 plots on a single row you can change this with -r.
Geometry
Like collectl, colgui tries to maximuze the use of the display real estate, which
can be critical when a lot of data is being requested either for multiple plots,
systems or both and so introduces the notion of a geometry of which there are 4:
- normal is the default as shown above
- compressed plots look just like normal plots except instead of starting a
new row for each system, all the plots are run together
- the normal and dense display is very similar to the normal display in that each
system starts a new row, but common information like the host and linenames are
factored out of the display and shown one time at the top
- the compressed and dense display is very special as it provides maximum density
and only supports a single plot since none have to show line names or axis labels.
In any event feel free to experiment with different plot geometries and plot dimensions
noting if a particular feature you're looking for doesn't exist it probably won't be
added as I'm not really putting any cycles into enhancing this utility. For more
information about colgui be sure to see the man page and try the --helpadvanced
switch as not all switches are shown by default.