Colgui is a real-time plotting tool designed to generate live on one or more systems on which collectl has been installed. It is not a general purpose plotting package.
Colgui has been developed on a linux system. It may work on other unix-based systsems but has not been tested on any.
Colgui is configured to display a default set of plots for the
local system at an update interval of 1 second so all you need
do is simply type colgui and in a few seconds you should
start seeing graphics.
The easiest way run it against one or more remote systems is to add the
--addr switch and specify the rempote address(es).
Just remember that the remote system needs to have the right version of collectl
installed and be able to use passwordless ssh or rsh.
Alternatively, and often more useful when consistently accessing a
group of the same systems, is to build a machines file
that looks like an /etc/hosts file, that is one host
name or address per line. When you run colgui you pass the name
of this file to it using the --machines switch. When
colgui starts, it will announce the names of the machines it's
connecting to and these should match those in your file. If
they do not, you probably have a syntaxt error in it.
Plots are displayed in the order specified, first by -s and then by -p.
The --xaxis and --yaxis switches change the
related sizes. The y-axis is specified in
pixels and the x-axis in terms of intervals between plotting
points which is currently set to 3, which you can also change
the pixel width of an interval with the --plotwidth switch.
Use the --geometry switch which controls the layout of
the plots themselves. The default format, called normal,
always starts a new row or each host. This can be changed
with --geometry c which stands for compress and
compresses the format such that all rows are filled. In other
words, if you are only displaying 2 plots per system, in normal
mode you see 2 plots per row, but in compressed mode you
will see 4 plots per row assuming you haven't changed the default.
Just be aware that this format can be very confusing because
depending on the number of plots per system and the number of plots
per row, these may not necessarily line up as they do when a new
system starts a new row.
Another possibility to use dense format by specifying
--geometry nd. This actually means to use
the normal display of one system per row but the plots
themselves should be in dense format. This means to
factor out the labels common to each host and plot.
Try it and see what it looks like to get a better feel.
Finally, use of --geometry cd will not only factor out
common labels, it will
compress plots from multiple systems to fill each row.
This format is only available when selecting a single plot.
There are several other resources available to you.
There are 2 ways you can run colgui, either from a display
directly connected to the Linux machine on which colgui is to be
run OR from a remote system connected to that Linux machine by
either a telnet or ssh session. In both cases, since colgui is an X
based application, the system you're running on isn't configured properly.
If you are directly attached to the system, it must be
operating in graphics mode, which is easily identified because
it will be running a graphical desktop. If you have connected via a remote
terminal session, you must have an X client running on that system
and have your DISPLAY environment variable pointing back to the system
from which you came.
I typically connect from a Windows PC and use Reflection as my X client.
The first thing I do on my PC is start Reflection and run the DOS
command ipconfig to get my IP address. Then I connect to the machine on
which I want to run colgui via putty, and upon
logging in execute the command export DISPLAY=windows-address:0.0. At
this point just type colgui and you should start seeing graphs.
By default, colgui uses socket 1234 for connections. It may be possible that
some other application is already using that socket OR a previous instance of
colgui existed abnormally leaving that socket open. In either case, rereun
colgui and specify a different value using --port.
You can either make the plot wider so the labels will fit or look at the
terminal window from which you started colgui. There is a table that lists
the plot colors and associated labels.
Add the --linewidth switch along with a number that
specifies the line widths in pixels to make them wider and
therefore brighter. A setting of 2 or 3 is usually adequate for me.
Alternatively, you could modify the default color scheme in the
code itself by setting the variables
$plotColor[] to the colors of your choice.
By default, a new row of plots is displayed for each system
being monitored. The number of plots displayed in one row
is controlled by -r (number of plots per row) and
currently set to 4. You can either set this to a smaller number
OR simply reduce the width of the individual plots by using
--xaxis and/or --plotwidth.
This can happen if the y-scale is set such that it is smaller
than the total of the stacked values. For example, if you have
a memory plot with a y-scale of 4GB and it shows
Used Memory at 2G, Cache Memory at 1GB,
Buffered Memory at 1GB and Free Memory at 2Gb, all
fit very nicely on a line graph since none of the values
exceed the y-axis maximum value. However if you stack these
you get total values of 6GB and so one or more lines will be off
the charts! This is not a bug...
Something is preventing the reverse connectivity problem. That has been seen
when the host system is running a firewall that doesn't have a rule to allow
incoming TCP connections on that interface/port. You will either need to
change the interface being used to one that is open or change the definitions
in /etc/iptables to open a port on that interface. You can then
explicitly specify that port be used with the --port switch.
By the nature of the number of pixels near the center of this type of plot,
low values often don't have enough pixels to represent them and they appear
invisible. Either make the plot a lot bigger via --yaxis or consider
a different type of plot.
You only get this if running with --geometry nd which by definition
always places all plots for the same host on the same row. In this case
they won't all fit and the only solutions are to make the row wider (and
some plots may go off the screen), make the plots narrower using
--xaxis, change the number of plots (request less) or use a less
restrictive geometry.
Lustre plot selection is special, sorry about that. The reason is
that it takes more than just -s to select a plot, you may also need to
specify --lustype if the default setting doesn't match the type of
system (client, OSS or MDS) you're trying to generate a plot for.
By design, all the standard plots have their maximum values defined in
/opt/hp/collectl/initParams.cfg. In the case of network detail plots, colgui can
often tell the maximum interface speeds from collectl. In the case of summary
plots if the limit is chosen at their aggregate peaks, this will often be
too high. The problems can be even worse with many disks, particularly if runing
with storage arrays which can look like a single disk and yet perform at many times
a single disk's rates. Therefore a reasonable guess was taken at choosing the
defaults. If this does not meet your needs, you have several choices:
While certainly the easiest to do, the danger with the first two choices is that
you will need to carry these changes forward with each new release and since all
you're doing at this time is creating custom plots, you might as well as choose
the third option.
By definition, --log1file puts all data into 1 big file, each line prefaced by
the node number of the host that generated the data. In order to plot this
data you must separate the data back into separate files and remove the host
numbers from the first column.
There are several other resources available to you.
How do I generate plots for remote systems?
How can I control the order in which plots are displayed?
How do you make the plots bigger?
Is there a way to better utilize screen real-estate?
Creating and Using Custom Plots
How do I begin?
Operational Problems
What does the error Xlib: connection to ":0.0" refused by server
mean?
I keep getting the error: couldn't create local socket on port: 1234
The plot format I'm seeing doesn't show all the line labels
I'm color blind (so am I) and the lines are too thin to see their colors
The plots being displayed are wider than my screen!
I'm overriding the plottype to produce a stacked plot
and I'm not seeing all the data.
When I run colgui with a proxy, I'm getting an error that colmux couldn't create a connection back to me.
I'm doing a radial plot and don't see any output even though the sweeper is moving
Why am I getting an error that the number of plots exceeds the number of of plots per row?
I want to generate a plot for lustre data using -s and was told no plots were selected.
My plots are maxing out at the top. Now what?
Problems with --proxy
Using --proxy can be tricky if not all versions of collectl are consistent across
all nodes being monitored. Rather than going into a lot of details about why, make
sure all nodes are running the same version and try again.
The logfile(s) I generate with --logfiles or --log1file don't look like collectl plot files
There are a couple of possibilities here. Logfiles generated using versions of
collectl prior to 2.0 will not provide the necessary header information. If
you want data plottable by colplot be sure to use a newer version of collectl.
Where else can I get help?