Each definition of a graph type begins with a "[SERVICE]" indicator,
this is the name passed as the "service" parameter to
showgraph.cgi(1). If the service name passed to showgraph.cgi is not found, it will
attempt to match the service name to a graph via the TEST2RRD environment
variable. So calling showgraph.cgi with "service=cpu" or "service=la"
will end up producing the same graph.
A graph definition needs to have a TITLE and a YAXIS setting. These are
texts shown as the title of the graph, and the YAXIS heading respectively.
(The X-axis is always time-based).
If a fixed set of RRD files are used for the graph, you just write those
in the RRDtool definitions. Note that Xymon keeps all RRD files for a host
in a separate directory per host, so you need not worry about the hostname
being part of the RRD filename.
For graphs that use multiple RRD files as input, you specify a filename
pattern in the FNPATTERN statement, and optionally a pattern of files
to exclude from the graph with EXFNPATTERN (see "[tcp]" for an example).
When FNPATTERN is used, you can use "@RRDFN@" in the RRDtool definitions
to pick up each filename. "@RRDIDX@" is an index (starting at 0) for each
file in the set. "@RRDPARAM@" contains the first word extracted from the
pattern of files (see e.g. "[memory]" how this is used). "@COLOR@" picks
a new color for each graph automatically.
The remainder of the lines in each definition are passed directly to the
RRDtool rrd_graph() routine.
The following is an example of how the "la" (cpu) graph is defined. This
is a simple definition that uses a single RRD-file, la.rrd:
TITLE CPU Load
AREA:la#00CC00:CPU Load Average
GPRINT:la:LAST: %5.1lf (cur)
GPRINT:la:MAX: %5.1lf (max)
GPRINT:la:MIN: %5.1lf (min)
GPRINT:la:AVERAGE: %5.1lf (avg)
Here is an example of a graph that uses multiple RRD-files, determined
automatically at run-time via the FNPATTERN setting. Note how it uses
the @RRDIDX@ to define a unique RRD parameter per input-file, and the
@COLOR@ and @RRDPARAM@ items to pick unique colors and a matching text
for the graph legend:
TITLE Disk Utilization
YAXIS % Full
GPRINT:p@RRDIDX@:LAST: %5.1lf (cur)
GPRINT:p@RRDIDX@:MAX: %5.1lf (max)
GPRINT:p@RRDIDX@:MIN: %5.1lf (min)
GPRINT:p@RRDIDX@:AVERAGE: %5.1lf (avg)
Normally the title of a graph is a static text defined in
the graphs.cfg file. However, there may be situations where
you want to use different titles for the same type of graph, e.g.
if you are incorporating RRD files from MRTG into Xymon. In that
case you can setup the TITLE definition so that it runs a custom
script to determine the graph title. Like this:
The /usr/local/bin/graphtitle command is then called with
the hostname, the graphtype, the period string, and all of the
RRD files used as parameters. The script must generate one line of output,
which is then used as the title of the graph.