_R_R_D_G_R_A_P_H___E_X_A_M_P_L_E_S(1)                rrdtool               _R_R_D_G_R_A_P_H___E_X_A_M_P_L_E_S(1)

NNAAMMEE
       rrdgraph_examples - Examples for rrdtool graph

SSYYNNOOPPSSIISS
       rrrrddttooooll ggrraapphh //hhoommee//hhttttppdd//hhttmmll//tteesstt..ppnngg ----iimmggffoorrmmaatt PPNNGG

       followed by any of the examples below

DDEESSCCRRIIPPTTIIOONN
       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.

EEXXAAMMPPLLEESS
   DDaattaa wwiitthh mmuullttiippllee rreessoolluuttiioonnss
           --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"

   NNiicceellyy ffoorrmmaatttteedd lleeggeenndd sseeccttiioonn
           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"

   OOffffsseettttiinngg aa lliinnee oonn tthhee yy--aaxxiiss
       Depending on your needs you can do this in two ways:

       +o   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"

       +o   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:mydata#FF0000:"Data with offset":STACK

   DDrraawwiinngg ddaasshheedd lliinneess
       Also works for HRULE and VRULE

       +o   default style: -- -- -- -- --

               LINE1:data#FF0000:"dashed line":dashes

       +o   more fancy style with offset: -- --  ------ --  ------ --

               LINE1:data#FF0000:"another dashed line":dashes=15,5,5,10:dash-offset=10

   TTiimmee rraannggeess
           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:   <nothing at all>
           Yesterday:       --end 00:00

   VViieewwiinngg tthhee ccuurrrreenntt aanndd pprreevviioouuss wweeeekk ttooggeetthheerr
           --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

   AAbbeerrrraanntt BBeehhaavviioouurr DDeetteeccttiioonn
       If the specialized function RRRRAAss 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 behavior) marked by  vertical  yellow
       lines (the fail data source).

       The  raw  data  comes from an AVERAGE RRRRAA, 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
       RRRRAA. The predicted deviations (think  standard  deviation)  values  are
       stored  in  the  DEVPREDICT  RRRRAA.  Finally,  the  FAILURES RRRRAA 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  RRRRAA  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 RRRRAA. 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 rrrrddttooooll _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 RRRRAAss 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.

SSEEEE AALLSSOO
       rrdgraph  gives  an overview of how rrrrddttooooll ggrraapphh works.  rrdgraph_data
       describes DDEEFF,CCDDEEFF and VVDDEEFF in detail.  rrdgraph_rpn describes the  RRPPNN
       language  used  in  the xxDDEEFF statements.  rrdgraph_graph page describes
       all the graph and print functions.

AAUUTTHHOORR
       Program by Tobias Oetiker <tobi@oetiker.ch>

       This manual page by Alex van den Bogaerdt <alex@vandenbogaerdt.nl> with
       corrections and/or additions by several people

1.9.0                             2024-07-29              _R_R_D_G_R_A_P_H___E_X_A_M_P_L_E_S(1)
