Code

6dc2871f98496ce7e9719eb1cfd4a7cf177a458b
[pkg-rrdtool.git] / doc / rrdgraph_examples.1
1 .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sh \" Subsection heading
6 .br
7 .if t .Sp
8 .ne 5
9 .PP
10 \fB\\$1\fR
11 .PP
12 ..
13 .de Sp \" Vertical space (when we can't use .PP)
14 .if t .sp .5v
15 .if n .sp
16 ..
17 .de Vb \" Begin verbatim text
18 .ft CW
19 .nf
20 .ne \\$1
21 ..
22 .de Ve \" End verbatim text
23 .ft R
24 .fi
25 ..
26 .\" Set up some character translations and predefined strings.  \*(-- will
27 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28 .\" double quote, and \*(R" will give a right double quote.  | will give a
29 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
30 .\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
31 .\" expand to `' in nroff, nothing in troff, for use with C<>.
32 .tr \(*W-|\(bv\*(Tr
33 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34 .ie n \{\
35 .    ds -- \(*W-
36 .    ds PI pi
37 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
39 .    ds L" ""
40 .    ds R" ""
41 .    ds C` ""
42 .    ds C' ""
43 'br\}
44 .el\{\
45 .    ds -- \|\(em\|
46 .    ds PI \(*p
47 .    ds L" ``
48 .    ds R" ''
49 'br\}
50 .\"
51 .\" If the F register is turned on, we'll generate index entries on stderr for
52 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53 .\" entries marked with X<> in POD.  Of course, you'll have to process the
54 .\" output yourself in some meaningful fashion.
55 .if \nF \{\
56 .    de IX
57 .    tm Index:\\$1\t\\n%\t"\\$2"
58 ..
59 .    nr % 0
60 .    rr F
61 .\}
62 .\"
63 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
64 .\" way too many mistakes in technical documents.
65 .hy 0
66 .if n .na
67 .\"
68 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
70 .    \" fudge factors for nroff and troff
71 .if n \{\
72 .    ds #H 0
73 .    ds #V .8m
74 .    ds #F .3m
75 .    ds #[ \f1
76 .    ds #] \fP
77 .\}
78 .if t \{\
79 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80 .    ds #V .6m
81 .    ds #F 0
82 .    ds #[ \&
83 .    ds #] \&
84 .\}
85 .    \" simple accents for nroff and troff
86 .if n \{\
87 .    ds ' \&
88 .    ds ` \&
89 .    ds ^ \&
90 .    ds , \&
91 .    ds ~ ~
92 .    ds /
93 .\}
94 .if t \{\
95 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101 .\}
102 .    \" troff and (daisy-wheel) nroff accents
103 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110 .ds ae a\h'-(\w'a'u*4/10)'e
111 .ds Ae A\h'-(\w'A'u*4/10)'E
112 .    \" corrections for vroff
113 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115 .    \" for low resolution devices (crt and lpr)
116 .if \n(.H>23 .if \n(.V>19 \
117 \{\
118 .    ds : e
119 .    ds 8 ss
120 .    ds o a
121 .    ds d- d\h'-1'\(ga
122 .    ds D- D\h'-1'\(hy
123 .    ds th \o'bp'
124 .    ds Th \o'LP'
125 .    ds ae ae
126 .    ds Ae AE
127 .\}
128 .rm #[ #] #H #V #F C
129 .\" ========================================================================
130 .\"
131 .IX Title "RRDGRAPH_EXAMPLES 1"
132 .TH RRDGRAPH_EXAMPLES 1 "2009-02-21" "1.3.99909060808" "rrdtool"
133 .SH "NAME"
134 rrdgraph_examples \- Examples for rrdtool graph
135 .SH "SYNOPSIS"
136 .IX Header "SYNOPSIS"
137 \&\fBrrdtool graph /home/httpd/html/test.png \-\-img\-format \s-1PNG\s0\fR
138 .PP
139 followed by any of the examples below
140 .SH "DESCRIPTION"
141 .IX Header "DESCRIPTION"
142 For your convenience some of the commands are explained here
143 by using detailed examples. They are not always cut-and-paste
144 ready because comments are intermixed with the examples.
145 .SH "EXAMPLES"
146 .IX Header "EXAMPLES"
147 .Sh "Data with multiple resolutions"
148 .IX Subsection "Data with multiple resolutions"
149 .Vb 7
150 \&    \-\-end now \-\-start end\-120000s \-\-width 400
151 \&    DEF:ds0a=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
152 \&    DEF:ds0b=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=1800
153 \&    DEF:ds0c=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=7200
154 \&    LINE1:ds0a#0000FF:"default resolution\el"
155 \&    LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\el"
156 \&    LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\el"
157 .Ve
158 .Sh "Nicely formatted legend section"
159 .IX Subsection "Nicely formatted legend section"
160 .Vb 10
161 \&    DEF:ds0=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
162 \&    DEF:ds1=/home/rrdtool/data/router1.rrd:ds1:AVERAGE
163 \&    VDEF:ds0max=ds0,MAXIMUM
164 \&    VDEF:ds0avg=ds0,AVERAGE
165 \&    VDEF:ds0min=ds0,MINIMUM
166 \&    VDEF:ds0pct=ds0,95,PERCENT
167 \&    VDEF:ds1max=ds1,MAXIMUM
168 \&    VDEF:ds1avg=ds1,AVERAGE
169 \&    VDEF:ds1min=ds1,MINIMUM
170 \&    VDEF:ds1pct=ds1,95,PERCENT
171 .Ve
172 .PP
173 Note: consolidation occurs here.
174 .PP
175 .Vb 2
176 \&    CDEF:ds0bits=ds0,8,*
177 \&    CDEF:ds1bits=ds1,8,*
178 .Ve
179 .PP
180 Note: 10 spaces to move text to the right
181 .PP
182 .Vb 1
183 \&    COMMENT:"          "
184 .Ve
185 .PP
186 Note: the column titles have to be as wide as the columns
187 .PP
188 .Vb 3
189 \&    COMMENT:"Maximum    "
190 \&    COMMENT:"Average    "
191 \&    COMMENT:"Minimum    "
192 .Ve
193 .PP
194 .Vb 11
195 \&    COMMENT:"95th percentile\el"
196 \&    AREA:ds0bits#00C000:"Inbound "
197 \&    GPRINT:ds0max:"%6.2lf %Sbps"
198 \&    GPRINT:ds0avg:"%6.2lf %Sbps"
199 \&    GPRINT:ds0min:"%6.2lf %Sbps"
200 \&    GPRINT:ds0pct:"%6.2lf %Sbps\el"
201 \&    LINE1:ds1bits#0000FF:"Outbound"
202 \&    GPRINT:ds1max:"%6.2lf %Sbps"
203 \&    GPRINT:ds1avg:"%6.2lf %Sbps"
204 \&    GPRINT:ds1min:"%6.2lf %Sbps"
205 \&    GPRINT:ds1pct:"%6.2lf %Sbps\el"
206 .Ve
207 .Sh "Offsetting a line on the y\-axis"
208 .IX Subsection "Offsetting a line on the y-axis"
209 Depending on your needs you can do this in two ways:
210 .IP "\(bu" 4
211 Offset the data, then graph this
212 .Sp
213 .Vb 1
214 \&    DEF:mydata=my.rrd:ds:AVERAGE
215 .Ve
216 .Sp
217 Note: this will also influence any other command that uses \*(L"data\*(R"
218 .Sp
219 .Vb 2
220 \&    CDEF:data=mydata,100,+
221 \&    LINE1:data#FF0000:"Data with offset"
222 .Ve
223 .IP "\(bu" 4
224 Graph the original data, with an offset
225 .Sp
226 .Vb 1
227 \&    DEF:mydata=my.rrd:ds:AVERAGE
228 .Ve
229 .Sp
230 Note: no color in the first line so it is not visible
231 .Sp
232 .Vb 1
233 \&    LINE1:100
234 .Ve
235 .Sp
236 Note: the second line gets stacked on top of the first one
237 .Sp
238 .Vb 1
239 \&    LINE1:data#FF0000:"Data with offset":STACK
240 .Ve
241 .Sh "Drawing dashed lines"
242 .IX Subsection "Drawing dashed lines"
243 Also works for \s-1HRULE\s0 and \s-1VRULE\s0
244 .IP "\(bu" 4
245 default style: \- \- \- \- \-
246     LINE1:data#FF0000:\*(L"dashed line\*(R":dashes
247 .IP "\(bu" 4
248 more fancy style with offset: \- \-  \-\-\- \-  \-\-\- \-
249     LINE1:data#FF0000:\*(L"another dashed line\*(R":dashes=15,5,5,10:dash\-offset=10
250 .Sh "Time ranges"
251 .IX Subsection "Time ranges"
252 .Vb 6
253 \&    Last four weeks: \-\-start end\-4w \-\-end 00:00
254 \&    January 2001:    \-\-start 20010101 \-\-end start+31d
255 \&    January 2001:    \-\-start 20010101 \-\-end 20010201
256 \&    Last hour:       \-\-start end\-1h
257 \&    Last 24 hours:   <nothing at all>
258 \&    Yesterday:       \-\-end 00:00
259 .Ve
260 .Sh "Viewing the current and previous week together"
261 .IX Subsection "Viewing the current and previous week together"
262 .Vb 3
263 \&    \-\-end now \-\-start end\-1w
264 \&    DEF:thisweek=router.rrd:ds0:AVERAGE
265 \&    DEF:lastweek=router.rrd:ds0:AVERAGE:end=now\-1w:start=end\-1w
266 .Ve
267 .PP
268 Shift the data forward by one week (604800 seconds)
269 .PP
270 .Vb 4
271 \&    SHIFT:lastweek:604800
272 \&    [ more of the usual VDEF and CDEF stuff if you like ]
273 \&    AREA:lastweek#0000FF:Last\e week
274 \&    LINE1:thisweek#FF0000:This\e week
275 .Ve
276 .Sh "Aberrant Behaviour Detection"
277 .IX Subsection "Aberrant Behaviour Detection"
278 If the specialized function \fBRRAs\fR exist for aberrant behavior detection, they
279 can be used to generate the graph of a time series with confidence bands and
280 failures.
281 .PP
282 .Vb 14
283 \&   rrdtool graph example.png \e
284 \&          DEF:obs=monitor.rrd:ifOutOctets:AVERAGE \e
285 \&          DEF:pred=monitor.rrd:ifOutOctets:HWPREDICT \e
286 \&          DEF:dev=monitor.rrd:ifOutOctets:DEVPREDICT \e
287 \&          DEF:fail=monitor.rrd:ifOutOctets:FAILURES \e
288 \&          TICK:fail#ffffa0:1.0:"Failures\e: Average bits out" \e
289 \&          CDEF:scaledobs=obs,8,* \e
290 \&          CDEF:upper=pred,dev,2,*,+ \e
291 \&          CDEF:lower=pred,dev,2,*,\- \e
292 \&          CDEF:scaledupper=upper,8,* \e
293 \&          CDEF:scaledlower=lower,8,* \e
294 \&          LINE2:scaledobs#0000ff:"Average bits out" \e
295 \&          LINE1:scaledupper#ff0000:"Upper Confidence Bound: Average bits out" \e
296 \&          LINE1:scaledlower#ff0000:"Lower Confidence Bound: Average bits out"
297 .Ve
298 .PP
299 This example generates a graph of the data series in blue (\s-1LINE2\s0 with the scaledobs
300 virtual data source), confidence bounds in red (scaledupper and scaledlower virtual
301 data sources), and potential failures (i.e. potential aberrant aberrant behavior)
302 marked by vertical yellow lines (the fail data source).
303 .PP
304 The raw data comes from an \s-1AVERAGE\s0 \fB\s-1RRA\s0\fR, the finest resolution of the observed
305 time series (one consolidated data point per primary data point). The predicted
306 (or smoothed) values are stored in the \s-1HWPREDICT\s0 \fB\s-1RRA\s0\fR. The predicted deviations
307 (think standard deviation) values are stored in the \s-1DEVPREDICT\s0 \fB\s-1RRA\s0\fR. Finally,
308 the \s-1FAILURES\s0 \fB\s-1RRA\s0\fR contains indicators, with 1 denoting a potential failure.
309 .PP
310 All of the data is rescaled to bits (instead of Octets) by multiplying by 8.
311 The confidence bounds are computed by an offset of 2 deviations both above
312 and below the predicted values (the CDEFs upper and lower). Vertical lines
313 indicated potential failures are graphed via the \s-1TICK\s0 graph element, which
314 converts non-zero values in an \fB\s-1RRA\s0\fR into tick marks. Here an axis-fraction
315 argument of 1.0 means the tick marks span the entire y\-axis, and hence become
316 vertical lines on the graph.
317 .PP
318 The choice of 2 deviations (a scaling factor) matches the default used internally
319 by the \s-1FAILURES\s0 \fB\s-1RRA\s0\fR. If the internal value is changed (see rrdtune), this
320 graphing command should be changed to be consistent.
321 .PP
322 \fIA note on data reduction:\fR
323 .IX Subsection "A note on data reduction:"
324 .PP
325 The \fBrrdtool\fR \fIgraph\fR command is designed to plot data at a specified temporal
326 resolution, regardless of the actually resolution of the data in the \s-1RRD\s0 file.
327 This can present a problem for the specialized consolidation functions which
328 maintain a one-to-one mapping between primary data points and consolidated
329 data points. If a graph insists on viewing the contents of these \fBRRAs\fR on a
330 coarser temporal scale, the \fIgraph\fR command tries to do something intelligent,
331 but the confidence bands and failures no longer have the same meaning and may
332 be misleading.
333 .SH "SEE ALSO"
334 .IX Header "SEE ALSO"
335 rrdgraph gives an overview of how \fBrrdtool graph\fR works.
336 rrdgraph_data describes \fB\s-1DEF\s0\fR,\fB\s-1CDEF\s0\fR and \fB\s-1VDEF\s0\fR in detail.
337 rrdgraph_rpn describes the \fB\s-1RPN\s0\fR language used in the \fBxDEF\fR statements.
338 rrdgraph_graph page describes all the graph and print functions.
339 .SH "AUTHOR"
340 .IX Header "AUTHOR"
341 Program by Tobias Oetiker <tobi@oetiker.ch>
342 .PP
343 This manual page by Alex van den Bogaerdt <alex@vandenbogaerdt.nl>
344 with corrections and/or additions by several people