X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=doc%2Frrdgraph_examples.pod;h=5821438cd417d5e804ef0e9a1bc90ce85f795ba8;hp=9360e0667050c549c2b8e4c69b7718e681c30574;hb=b69a1a9abc9afdc2bfb23b84e28c2afb0b1a5e09;hpb=1ed31d581dfed23377a61d4df88bb9c2b9b2c94b diff --git a/doc/rrdgraph_examples.pod b/doc/rrdgraph_examples.pod index 9360e06..5821438 100644 --- a/doc/rrdgraph_examples.pod +++ b/doc/rrdgraph_examples.pod @@ -4,7 +4,7 @@ rrdgraph_examples - Examples for rrdtool graph =head1 SYNOPSIS -B +B followed by any of the examples below @@ -22,22 +22,22 @@ ready because comments are intermixed with the examples. 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. @@ -48,31 +48,29 @@ Note: 10 spaces to move text to the right COMMENT:" " -Note: three times size == 11 chars, "###.## xBps" +Note: the column titles have to be as wide as the columns COMMENT:"Maximum " COMMENT:"Average " COMMENT:"Minimum " -Note: last line contains new-line character - - 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 * @@ -80,7 +78,7 @@ Offset the data, then graph this DEF:mydata=my.rrd:ds:AVERAGE -Note: this will also influence anything that uses "data" +Note: this will also influence any other command that uses "data" CDEF:data=mydata,100,+ LINE1:data#FF0000:"Data with offset" @@ -101,39 +99,111 @@ Note: the second line gets stacked on top of the first one =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 - Januari 2001: --start 200101010000 --end start+31d - Januari 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: Yesterday: --end 00:00 -=head2 Viewing This week and last week together +=head2 Viewing the current and previous week together --end now --start end-1w DEF:thisweek=router.rrd:ds0:AVERAGE DEF:lastweek=router.rrd:ds0:AVERAGE:end=now-1w:start=end-1w -shift the data forward by one week (604800 seconds) +Shift the data forward by one week (604800 seconds) SHIFT:lastweek:604800 [ more of the usual VDEF and CDEF stuff if you like ] AREA:lastweek#0000FF:Last\ week LINE1:thisweek#FF0000:This\ week +=head2 Aberrant Behaviour Detection + +If the specialized function B 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, 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. The predicted deviations +(think standard deviation) values are stored in the DEVPREDICT B. Finally, +the FAILURES B 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 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. If the internal value is changed (see L), this +graphing command should be changed to be consistent. + +=head3 A note on data reduction: + +The B I 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 on a +coarser temporal scale, the I 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 gives an overview of how B works. -L describes B,B and B in detail, -L describes the B language used in the B statements, -L page describes all of the graph and print functions. - -Make sure to read L for tipsEtricks. +L describes B,B and B in detail. +L describes the B language used in the B statements. +L page describes all the graph and print functions. =head1 AUTHOR -Program by Tobias Oetiker Eoetiker@ee.ethz.chE +Program by Tobias Oetiker Etobi@oetiker.chE This manual page by Alex van den Bogaerdt Ealex@ergens.op.het.netE