=head1 SYNOPSIS
-B<rrdtool graph /home/httpd/html/test.png --img-format PNG \>
+B<rrdtool graph /home/httpd/html/test.png --img-format PNG>
followed by any of the examples below
DEF:ds0a=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
DEF:ds0b=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=1800
DEF:ds0c=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=7200
- LINE1:ds0a#0000FF:"default resolution\n"
- LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\n"
- LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\n"
+ LINE1:ds0a#0000FF:"default resolution\l"
+ LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\l"
+ LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\l"
=head2 Nicely formatted legend section
DEF:ds0=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
DEF:ds1=/home/rrdtool/data/router1.rrd:ds1:AVERAGE
- VDEF:ds0max=ds0,MAXIMUM,8,*
- VDEF:ds0avg=ds0,AVERAGE,8,*
- VDEF:ds0min=ds0,MINIMUM,8,*
- VDEF:ds0pct=95,ds0,PERCENTILE,8,*
- VDEF:ds1max=ds1,MAXIMUM,8,*
- VDEF:ds1avg=ds1,AVERAGE,8,*
- VDEF:ds1min=ds1,MINIMUM,8,*
- VDEF:ds1pct=95,ds1,PERCENTILE,8,*
+ VDEF:ds0max=ds0,MAXIMUM
+ VDEF:ds0avg=ds0,AVERAGE
+ VDEF:ds0min=ds0,MINIMUM
+ VDEF:ds0pct=ds0,95,PERCENT
+ VDEF:ds1max=ds1,MAXIMUM
+ VDEF:ds1avg=ds1,AVERAGE
+ VDEF:ds1min=ds1,MINIMUM
+ VDEF:ds1pct=ds1,95,PERCENT
Note: consolidation occurs here.
COMMENT:"Average "
COMMENT:"Minimum "
-Note: some lines contains the new-line character "\n"
-
- COMMENT:"95th percentile\n"
+ COMMENT:"95th percentile\l"
AREA:ds0bits#00C000:"Inbound "
GPRINT:ds0max:"%6.2lf %Sbps"
GPRINT:ds0avg:"%6.2lf %Sbps"
GPRINT:ds0min:"%6.2lf %Sbps"
- GPRINT:ds0pct:"%6.2lf %Sbps\n"
+ GPRINT:ds0pct:"%6.2lf %Sbps\l"
LINE1:ds1bits#0000FF:"Outbound"
GPRINT:ds1max:"%6.2lf %Sbps"
GPRINT:ds1avg:"%6.2lf %Sbps"
GPRINT:ds1min:"%6.2lf %Sbps"
- GPRINT:ds1pct:"%6.2lf %Sbps\n"
+ GPRINT:ds1pct:"%6.2lf %Sbps\l"
=head2 Offsetting a line on the y-axis
Depending on your needs you can do this in two ways:
-=over 4
+=over
=item *
=back
+=head2 Drawing dashed lines
+
+Also works for HRULE and VRULE
+
+=over
+
+=item *
+
+default style: - - - - -
+ LINE1:data#FF0000:"dashed line":dashes
+
+=item *
+
+more fancy style with offset: - - --- - --- -
+ LINE1:data#FF0000:"another dashed line":dashes=15,5,5,10:dash-offset=10
+
+=back
+
=head2 Time ranges
Last four weeks: --start end-4w --end 00:00
- January 2001: --start 200101010000 --end start+31d
- January 2001: --start 200101010000 --end 200102010000
+ January 2001: --start 20010101 --end start+31d
+ January 2001: --start 20010101 --end 20010201
Last hour: --start end-1h
Last 24 hours: <nothing at all>
Yesterday: --end 00:00
AREA:lastweek#0000FF:Last\ week
LINE1:thisweek#FF0000:This\ week
+=head2 Aberrant Behaviour Detection
+
+If the specialized function B<RRAs> exist for aberrant behavior detection, they
+can be used to generate the graph of a time series with confidence bands and
+failures.
+
+ rrdtool graph example.png \
+ DEF:obs=monitor.rrd:ifOutOctets:AVERAGE \
+ DEF:pred=monitor.rrd:ifOutOctets:HWPREDICT \
+ DEF:dev=monitor.rrd:ifOutOctets:DEVPREDICT \
+ DEF:fail=monitor.rrd:ifOutOctets:FAILURES \
+ TICK:fail#ffffa0:1.0:"Failures\: Average bits out" \
+ CDEF:scaledobs=obs,8,* \
+ CDEF:upper=pred,dev,2,*,+ \
+ CDEF:lower=pred,dev,2,*,- \
+ CDEF:scaledupper=upper,8,* \
+ CDEF:scaledlower=lower,8,* \
+ LINE2:scaledobs#0000ff:"Average bits out" \
+ LINE1:scaledupper#ff0000:"Upper Confidence Bound: Average bits out" \
+ LINE1:scaledlower#ff0000:"Lower Confidence Bound: Average bits out"
+
+This example generates a graph of the data series in blue (LINE2 with the scaledobs
+virtual data source), confidence bounds in red (scaledupper and scaledlower virtual
+data sources), and potential failures (i.e. potential aberrant aberrant behavior)
+marked by vertical yellow lines (the fail data source).
+
+The raw data comes from an AVERAGE B<RRA>, the finest resolution of the observed
+time series (one consolidated data point per primary data point). The predicted
+(or smoothed) values are stored in the HWPREDICT B<RRA>. The predicted deviations
+(think standard deviation) values are stored in the DEVPREDICT B<RRA>. Finally,
+the FAILURES B<RRA> contains indicators, with 1 denoting a potential failure.
+
+All of the data is rescaled to bits (instead of Octets) by multiplying by 8.
+The confidence bounds are computed by an offset of 2 deviations both above
+and below the predicted values (the CDEFs upper and lower). Vertical lines
+indicated potential failures are graphed via the TICK graph element, which
+converts non-zero values in an B<RRA> into tick marks. Here an axis-fraction
+argument of 1.0 means the tick marks span the entire y-axis, and hence become
+vertical lines on the graph.
+
+The choice of 2 deviations (a scaling factor) matches the default used internally
+by the FAILURES B<RRA>. If the internal value is changed (see L<rrdtune>), this
+graphing command should be changed to be consistent.
+
+=head3 A note on data reduction:
+
+The B<rrdtool> I<graph> command is designed to plot data at a specified temporal
+resolution, regardless of the actually resolution of the data in the RRD file.
+This can present a problem for the specialized consolidation functions which
+maintain a one-to-one mapping between primary data points and consolidated
+data points. If a graph insists on viewing the contents of these B<RRAs> on a
+coarser temporal scale, the I<graph> command tries to do something intelligent,
+but the confidence bands and failures no longer have the same meaning and may
+be misleading.
+
+
=head1 SEE ALSO
L<rrdgraph> gives an overview of how B<rrdtool graph> works.
L<rrdgraph_data> describes B<DEF>,B<CDEF> and B<VDEF> in detail.
-L<rrdgraph_rpn> describes the B<RPN> language used in the B<?DEF> statements.
+L<rrdgraph_rpn> describes the B<RPN> language used in the B<xDEF> statements.
L<rrdgraph_graph> page describes all the graph and print functions.
Make sure to read L<rrdgraph_examples> for tipsE<amp>tricks.
=head1 AUTHOR
-Program by Tobias Oetiker E<lt>oetiker@ee.ethz.chE<gt>
+Program by Tobias Oetiker E<lt>tobi@oetiker.chE<gt>
This manual page by Alex van den Bogaerdt E<lt>alex@ergens.op.het.netE<gt>