1RRDGRAPH_DATA(1)                    rrdtool                   RRDGRAPH_DATA(1)
2
3
4

NAME

6       rrdgraph_data - preparing data for graphing in rrdtool graph
7

SYNOPSIS

9       DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
10
11       VDEF:vname=RPN expression
12
13       CDEF:vname=RPN expression
14

DESCRIPTION

16       These three instructions extract data values out of the RRD files,
17       optionally altering them (think, for example, of a bytes to bits
18       conversion). If so desired, you can also define variables containing
19       useful information such as maximum, minimum etcetera. Two of the
20       instructions use a language called RPN which is described in its own
21       manual page.
22
23       Variable names (vname) must be made up strings of the following
24       characters "A-Z, a-z, 0-9, -,_" and a maximum length of 255 characters.
25
26       When picking variable names, make sure you do not choose a name that is
27       already taken by an RPN operator. A safe bet it to use lowercase or
28       mixed case names for variables since operators will always be in
29       uppercase.
30

DEF

32       DEF:<vname>=<rrdfile>:<ds-name>:<CF>[:step=<step>][:start=<time>][:end=<time>][:reduce=<CF>]
33
34       This command fetches data from an RRD file.  The virtual name vname can
35       then be used throughout the rest of the script. By default, an RRA
36       which contains the correct consolidated data at an appropriate
37       resolution will be chosen.  The resolution can be overridden with the
38       --step option.  The resolution can again be overridden by specifying
39       the step size.  The time span of this data is the same as for the graph
40       by default, you can override this by specifying start and end.
41       Remember to escape colons in the time specification!
42
43       If the resolution of the data is higher than the resolution of the
44       graph, the data will be further consolidated. This may result in a
45       graph that spans slightly more time than requested.  Ideally each point
46       in the graph should correspond with one CDP from an RRA.  For instance,
47       if your RRD has an RRA with a resolution of 1800 seconds per CDP, you
48       should create an image with width 400 and time span 400*1800 seconds
49       (use appropriate start and end times, such as "--start
50       end-8days8hours").
51
52       If consolidation needs to be done, the CF of the RRA specified in the
53       DEF itself will be used to reduce the data density. This behavior can
54       be changed using ":reduce=<CF>".  This optional parameter specifies the
55       CF to use during the data reduction phase.
56
57       Example:
58
59               DEF:ds0=router.rrd:ds0:AVERAGE
60               DEF:ds0weekly=router.rrd:ds0:AVERAGE:step=7200
61               DEF:ds0weekly=router.rrd:ds0:AVERAGE:start=end-1h
62               DEF:ds0weekly=router.rrd:ds0:AVERAGE:start=11\:00:end=start+1h
63

VDEF

65       VDEF:vname=RPN expression
66
67       This command returns a value and/or a time according to the RPN
68       statements used. The resulting vname will, depending on the functions
69       used, have a value and a time component.  When you use this vname in
70       another RPN expression, you are effectively inserting its value just as
71       if you had put a number at that place.  The variable can also be used
72       in the various graph and print elements.
73
74       Example: "VDEF:avg=mydata,AVERAGE"
75
76       Note that currently only aggregation functions work in VDEF rpn
77       expressions.  Patches to change this are welcome.
78

CDEF

80       CDEF:vname=RPN expression
81
82       This command creates a new set of data points (in memory only, not in
83       the RRD file) out of one or more other data series. The RPN
84       instructions are used to evaluate a mathematical function on each data
85       point. The resulting vname can then be used further on in the script,
86       just as if it were generated by a DEF instruction.
87
88       Example: "CDEF:mydatabits=mydata,8,*"
89

About CDEF versus VDEF

91       At some point in processing, RRDtool has gathered an array of rates
92       ready to display.
93
94       CDEF works on such an array.  For example, CDEF:new=ds0,8,* would
95       multiply each of the array members by eight (probably transforming
96       bytes into bits). The result is an array containing the new values.
97
98       VDEF also works on such an array but in a different way.  For example,
99       VDEF:max=ds0,MAXIMUM would scan each of the array members and store the
100       maximum value.
101
102   When do you use VDEF versus CDEF?
103       Use CDEF to transform your data prior to graphing.  In the above
104       example, we'd use a CDEF to transform bytes to bits before graphing the
105       bits.
106
107       You use a VDEF if you want max(1,5,3,2,4) to return five which would be
108       displayed in the graph's legend (to answer, what was the maximum value
109       during the graph period).
110
111       If you want to apply 'complex' operations to the result of a VDEF you
112       have to use a CDEF again since VDEFs only look like RPN expressions,
113       they aren't really.
114

SEE ALSO

116       rrdgraph gives an overview of how rrdtool graph works.  rrdgraph_data
117       describes DEF,CDEF and VDEF in detail.  rrdgraph_rpn describes the RPN
118       language used in the ?DEF statements.  rrdgraph_graph page describes
119       all of the graph and print functions.
120
121       Make sure to read rrdgraph_examples for tips&tricks.
122

AUTHOR

124       Program by Tobias Oetiker <tobi@oetiker.ch>
125
126       This manual page by Alex van den Bogaerdt <alex@vandenbogaerdt.nl> with
127       corrections and/or additions by several people
128
129
130
1311.4.8                             2013-05-23                  RRDGRAPH_DATA(1)
Impressum