Code

Imported upstream version 1.4.8
[pkg-rrdtool.git] / doc / rrdgraph_data.1
1 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings.  \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote.  \*(C+ will
21 .\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 .    ds -- \(*W-
28 .    ds PI pi
29 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
31 .    ds L" ""
32 .    ds R" ""
33 .    ds C` ""
34 .    ds C' ""
35 'br\}
36 .el\{\
37 .    ds -- \|\(em\|
38 .    ds PI \(*p
39 .    ds L" ``
40 .    ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el       .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD.  Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 .    de IX
53 .    tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 .    nr % 0
56 .    rr F
57 .\}
58 .el \{\
59 .    de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
65 .    \" fudge factors for nroff and troff
66 .if n \{\
67 .    ds #H 0
68 .    ds #V .8m
69 .    ds #F .3m
70 .    ds #[ \f1
71 .    ds #] \fP
72 .\}
73 .if t \{\
74 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 .    ds #V .6m
76 .    ds #F 0
77 .    ds #[ \&
78 .    ds #] \&
79 .\}
80 .    \" simple accents for nroff and troff
81 .if n \{\
82 .    ds ' \&
83 .    ds ` \&
84 .    ds ^ \&
85 .    ds , \&
86 .    ds ~ ~
87 .    ds /
88 .\}
89 .if t \{\
90 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 .    \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 .    \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 .    \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 .    ds : e
114 .    ds 8 ss
115 .    ds o a
116 .    ds d- d\h'-1'\(ga
117 .    ds D- D\h'-1'\(hy
118 .    ds th \o'bp'
119 .    ds Th \o'LP'
120 .    ds ae ae
121 .    ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "RRDGRAPH_DATA 1"
127 .TH RRDGRAPH_DATA 1 "2013-05-23" "1.4.8" "rrdtool"
128 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 rrdgraph_data \- preparing data for graphing in rrdtool graph
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 \&\fB\s-1DEF:\s0\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds\-name>\fR:\fI<\s-1CF\s0>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR][:end=\fI<time>\fR][:reduce=\fI<\f(BI\s-1CF\s0\fI>\fR]
137 .PP
138 \&\fB\s-1VDEF\s0\fR:\fIvname\fR=\fI\s-1RPN\s0 expression\fR
139 .PP
140 \&\fB\s-1CDEF\s0\fR:\fIvname\fR=\fI\s-1RPN\s0 expression\fR
141 .SH "DESCRIPTION"
142 .IX Header "DESCRIPTION"
143 These three instructions extract data values out of the \fB\s-1RRD\s0\fR files,
144 optionally altering them (think, for example, of a bytes to bits
145 conversion). If so desired, you can also define variables containing
146 useful information such as maximum, minimum etcetera. Two of the
147 instructions use a language called \fB\s-1RPN\s0\fR which is described in its
148 own manual page.
149 .PP
150 Variable names (\fIvname\fR) must be made up strings of the following characters
151 \&\f(CW\*(C`A\-Z, a\-z, 0\-9, \-,_\*(C'\fR and a maximum length of 255 characters.
152 .PP
153 When picking variable names, make sure you do not choose a name that is
154 already taken by an \s-1RPN\s0 operator. A safe bet it to use lowercase or
155 mixed case names for variables since operators will always be in uppercase.
156 .SH "DEF"
157 .IX Header "DEF"
158 \&\fB\s-1DEF:\s0\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds\-name>\fR:\fI<\s-1CF\s0>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR][:end=\fI<time>\fR][:reduce=\fI<\f(BI\s-1CF\s0\fI>\fR]
159 .PP
160 This command fetches data from an \fB\s-1RRD\s0\fR file.  The virtual name
161 \&\fIvname\fR can then be used throughout the rest of the script. By
162 default, an \fB\s-1RRA\s0\fR which contains the correct consolidated data
163 at an appropriate resolution will be chosen.  The resolution can
164 be overridden with the \-\-step option.
165 The resolution can again be overridden by specifying the \fBstep size\fR.
166 The time span of this data is the same as for the graph by default,
167 you can override this by specifying \fBstart and end\fR.  Remember to
168 escape colons in the time specification!
169 .PP
170 If the resolution of the data is higher than the resolution of the
171 graph, the data will be further consolidated. This may result in
172 a graph that spans slightly more time than requested.
173 Ideally each point in the graph should correspond with one \fB\s-1CDP\s0\fR
174 from an \fB\s-1RRA\s0\fR.  For instance, if your \fB\s-1RRD\s0\fR has an \fB\s-1RRA\s0\fR with
175 a resolution of 1800 seconds per \fB\s-1CDP\s0\fR, you should create an
176 image with width 400 and time span 400*1800 seconds (use appropriate
177 start and end times, such as \f(CW\*(C`\-\-start end\-8days8hours\*(C'\fR).
178 .PP
179 If consolidation needs to be done, the \fB\s-1CF\s0\fR of the \fB\s-1RRA\s0\fR specified in the
180 \&\fB\s-1DEF\s0\fR itself will be used to reduce the data density. This behavior can
181 be changed using \f(CW\*(C`:reduce=\f(CI<\f(CBCF\f(CI>\f(CW\*(C'\fR.  This optional parameter
182 specifies the \fB\s-1CF\s0\fR to use during the data reduction phase.
183 .PP
184 Example:
185 .PP
186 .Vb 4
187 \&        DEF:ds0=router.rrd:ds0:AVERAGE
188 \&        DEF:ds0weekly=router.rrd:ds0:AVERAGE:step=7200
189 \&        DEF:ds0weekly=router.rrd:ds0:AVERAGE:start=end\-1h
190 \&        DEF:ds0weekly=router.rrd:ds0:AVERAGE:start=11\e:00:end=start+1h
191 .Ve
192 .SH "VDEF"
193 .IX Header "VDEF"
194 \&\fB\s-1VDEF\s0\fR:\fIvname\fR=\fI\s-1RPN\s0 expression\fR
195 .PP
196 This command returns a value and/or a time according to the \fB\s-1RPN\s0\fR
197 statements used. The resulting \fIvname\fR will, depending on the
198 functions used, have a value and a time component.  When you use
199 this \fIvname\fR in another \fB\s-1RPN\s0\fR expression, you are effectively
200 inserting its value just as if you had put a number at that place.
201 The variable can also be used in the various graph and print
202 elements.
203 .PP
204 Example: \f(CW\*(C`VDEF:avg=mydata,AVERAGE\*(C'\fR
205 .PP
206 Note that currently only aggregation functions work in \s-1VDEF\s0 rpn expressions.
207 Patches to change this are welcome.
208 .SH "CDEF"
209 .IX Header "CDEF"
210 \&\fB\s-1CDEF\s0\fR:\fIvname\fR=\fI\s-1RPN\s0 expression\fR
211 .PP
212 This command creates a new set of data points (in memory only, not
213 in the \fB\s-1RRD\s0\fR file) out of one or more other data series. The \fB\s-1RPN\s0\fR
214 instructions are used to evaluate a mathematical function on each
215 data point. The resulting \fIvname\fR can then be used further on in
216 the script, just as if it were generated by a \fB\s-1DEF\s0\fR instruction.
217 .PP
218 Example: \f(CW\*(C`CDEF:mydatabits=mydata,8,*\*(C'\fR
219 .SH "About CDEF versus VDEF"
220 .IX Header "About CDEF versus VDEF"
221 At some point in processing, \fBRRDtool\fR has gathered an array of rates
222 ready to display.
223 .PP
224 \&\fB\s-1CDEF\s0\fR works on such an array.  For example, \fICDEF:new=ds0,8,*\fR
225 would multiply each of the array members by eight (probably
226 transforming bytes into bits). The result is an array containing the
227 new values.
228 .PP
229 \&\fB\s-1VDEF\s0\fR also works on such an array but in a different way.  For
230 example, \fIVDEF:max=ds0,MAXIMUM\fR would scan each of the array members
231 and store the maximum value.
232 .SS "When do you use \fB\s-1VDEF\s0\fP versus \fB\s-1CDEF\s0\fP?"
233 .IX Subsection "When do you use VDEF versus CDEF?"
234 Use \fB\s-1CDEF\s0\fR to transform your data prior to graphing.  In the above
235 example, we'd use a \fB\s-1CDEF\s0\fR to transform bytes to bits before
236 graphing the bits.
237 .PP
238 You use a \fB\s-1VDEF\s0\fR if you want \fImax(1,5,3,2,4)\fR to return five which
239 would be displayed in the graph's legend (to answer, what was the
240 maximum value during the graph period).
241 .PP
242 If you want to apply 'complex' operations to the result of a \s-1VDEF\s0 you have
243 to use a \s-1CDEF\s0 again since VDEFs only look like \s-1RPN\s0 expressions, they aren't
244 really.
245 .SH "SEE ALSO"
246 .IX Header "SEE ALSO"
247 rrdgraph gives an overview of how \fBrrdtool graph\fR works.
248 rrdgraph_data describes \fB\s-1DEF\s0\fR,\fB\s-1CDEF\s0\fR and \fB\s-1VDEF\s0\fR in detail.
249 rrdgraph_rpn describes the \fB\s-1RPN\s0\fR language used in the \fB?DEF\fR statements.
250 rrdgraph_graph page describes all of the graph and print functions.
251 .PP
252 Make sure to read rrdgraph_examples for tips&tricks.
253 .SH "AUTHOR"
254 .IX Header "AUTHOR"
255 Program by Tobias Oetiker <tobi@oetiker.ch>
256 .PP
257 This manual page by Alex van den Bogaerdt <alex@vandenbogaerdt.nl>
258 with corrections and/or additions by several people