RRDGRAPH_EXAMPLES(1) rrdtool RRDGRAPH_EXAMPLES(1) NNAAMMEE rrdgraph_examples - Examples for rrdtool graph SSYYNNOOPPSSIISS rrrrddttooooll ggrraapphh //hhoommee//hhttttppdd//hhttmmll//tteesstt..ppnngg ----iimmgg--ffoorrmmaatt PPNNGG followed by any of the examples below DDEESSCCRRIIPPTTIIOONN For your convenience some of the commands are explained here by using detailed examples. They are not always cut-and-paste ready because comments are intermixed with the examples. EEXXAAMMPPLLEESS DDaattaa wwiitthh mmuullttiippllee rreessoolluuttiioonnss --end now --start end-120000s --width 400 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\l" LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\l" LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\l" NNiicceellyy ffoorrmmaatttteedd lleeggeenndd sseeccttiioonn DEF:ds0=/home/rrdtool/data/router1.rrd:ds0:AVERAGE DEF:ds1=/home/rrdtool/data/router1.rrd:ds1:AVERAGE 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. CDEF:ds0bits=ds0,8,* CDEF:ds1bits=ds1,8,* Note: 10 spaces to move text to the right COMMENT:" " Note: the column titles have to be as wide as the columns COMMENT:"Maximum " COMMENT:"Average " COMMENT:"Minimum " 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\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\l" OOffffsseettttiinngg aa lliinnee oonn tthhee yy--aaxxiiss Depending on your needs you can do this in two ways: · Offset the data, then graph this DEF:mydata=my.rrd:ds:AVERAGE Note: this will also influence any other command that uses "data" CDEF:data=mydata,100,+ LINE1:data#FF0000:"Data with offset" · Graph the original data, with an offset DEF:mydata=my.rrd:ds:AVERAGE Note: no color in the first line so it is not visible LINE1:100 Note: the second line gets stacked on top of the first one LINE1:data#FF0000:"Data with offset":STACK DDrraawwiinngg ddaasshheedd lliinneess Also works for HRULE and VRULE · default style: - - - - - LINE1:data#FF0000:"dashed line":dashes · more fancy style with offset: - - --- - --- - LINE1:data#FF0000:"another dashed line":dashes=15,5,5,10:dash-offset=10 TTiimmee rraannggeess Last four weeks: --start end-4w --end 00:00 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 VViieewwiinngg tthhee ccuurrrreenntt aanndd pprreevviioouuss wweeeekk ttooggeetthheerr --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:lastweek:604800 [ more of the usual VDEF and CDEF stuff if you like ] AREA:lastweek#0000FF:Last\ week LINE1:thisweek#FF0000:This\ week AAbbeerrrraanntt BBeehhaavviioouurr DDeetteeccttiioonn If the specialized function RRRRAAss 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 RRRRAA, 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 RRRRAA. The predicted deviations (think standard deviation) values are stored in the DEVPREDICT RRRRAA. Finally, the FAILURES RRRRAA 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 RRRRAA 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 RRRRAA. If the internal value is changed (see rrdtune), this graphing command should be changed to be consistent. _A _n_o_t_e _o_n _d_a_t_a _r_e_d_u_c_t_i_o_n_: The rrrrddttooooll _g_r_a_p_h 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 RRRRAAss on a coarser temporal scale, the _g_r_a_p_h command tries to do something intelligent, but the confidence bands and failures no longer have the same meaning and may be misleading. SSEEEE AALLSSOO rrdgraph gives an overview of how rrrrddttooooll ggrraapphh works. rrdgraph_data describes DDEEFF,CCDDEEFF and VVDDEEFF in detail. rrdgraph_rpn describes the RRPPNN language used in the xxDDEEFF statements. rrdgraph_graph page describes all the graph and print functions. AAUUTTHHOORR Program by Tobias Oetiker This manual page by Alex van den Bogaerdt with corrections and/or additions by several people 1.4.8 2013-05-23 RRDGRAPH_EXAMPLES(1)