# NAME

rrdgraph_examples - Examples for rrdtool graph

# SYNOPSIS

rrdtool graph /home/httpd/html/test.png --img-format PNG

followed by any of the examples below

# DESCRIPTION

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.

# EXAMPLES

## Data with multiple resolutions

        --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"

## 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
        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"

## Offsetting a line on the y-axis

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

## Time ranges

        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

## 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:lastweek:604800
        [ more of the usual VDEF and CDEF stuff if you like ]
        AREA:lastweek#0000FF:Last\ week
        LINE1:thisweek#FF0000:This\ week

# SEE ALSO

the rrdgraph manpage gives an overview of how rrdtool graph works. the rrdgraph_data manpage describes DEF,CDEF and VDEF in detail. the rrdgraph_rpn manpage describes the RPN language used in the xDEF statements. the rrdgraph_graph manpage page describes all the graph and print functions.

Make sure to read the rrdgraph_examples manpage for tips&tricks.

# AUTHOR

Program by Tobias Oetiker <tobi@oetiker.ch>

This manual page by Alex van den Bogaerdt <alex@ergens.op.het.net>