=head1 NAME rrdgraph_data - preparing data for graphing in rrdtool graph =head1 SYNOPSIS BIvnameE>=IrrdfileE>:Ids-nameE>:ICFE>[:step=IstepE>][:start=ItimeE>][:end=ItimeE>][:reduce=IBE>] B:I=I B:I=I =head1 DESCRIPTION These three instructions extract data values out of the B files, optionally altering them (think, for example, of a bytes to bits conversion). If so desired, you can also define variables containing useful information such as maximum, minimum etcetera. Two of the instructions use a language called B which is described in its own manual page. Variable names (I) must be made up strings of the following characters C and a maximum length of 255 characters. When picking variable names, make sure you do not choose a name that is already taken by an RPN operator. A safe bet it to use lowercase or mixedcase names for variables since operators will always be in uppercase. =head1 DEF BIvnameE>=IrrdfileE>:Ids-nameE>:ICFE>[:step=IstepE>][:start=ItimeE>][:end=ItimeE>][:reduce=IBE>] This command fetches data from an B file. The virtual name I can then be used throughout the rest of the script. By default, an B which contains the correct consolidated data at an appropriate resolution will be chosen. The resolution can be overridden with the L<--step|rrdgraph/item_Time> option. The resolution can again be overridden by specifying the B. The time span of this data is the same as for the graph by default, you can override this by specifying B. Remember to escape colons in the time specification! If the resolution of the data is higher than the resolution of the graph, the data will be further consolidated. This may result in a graph that spans slightly more time than requested. Ideally each point in the graph should correspond with one B from an B. For instance, if your B has an B with a resolution of 1800 seconds per B, you should create an image with width 400 and time span 400*1800 seconds (use appropriate start and end times, such as C<--start end-8days8hours>). If consolidation needs to be done, the B of the B specified in the B itself will be used to reduce the data density. This behaviour can be changed using C<:reduce=IBE>>. This optional parameter specifies the B to use during the data reduction phase. Example: DEF:ds0=router.rrd:ds0:AVERAGE DEF:ds0weekly=router.rrd:ds0:AVERAGE:step=7200 DEF:ds0weekly=router.rrd:ds0:AVERAGE:start=end-1h DEF:ds0weekly=router.rrd:ds0:AVERAGE:start=11\:00:end=start+1h =head1 VDEF B:I=I This command returns a value and/or a time according to the B statements used. The resulting I will, depending on the functions used, have a value and a time component. When you use this I in another B expression, you are effectively inserting its value just as if you had put a number at that place. The variable can also be used in the various graph and print elements. Example: C Note that currently only agregation functions work in VDEF rpn expressions. Patches to change this are welcome. =head1 CDEF B:I=I This command creates a new set of data points (in memory only, not in the B file) out of one or more other data series. The B instructions are used to evaluate a mathematical function on each data point. The resulting I can then be used further on in the script, just as if it were generated by a B instruction. Example: C =head1 SEE ALSO L gives an overview of how B works. L describes B,B and B in detail. L describes the B language used in the B statements. L page describes all of the graph and print functions. Make sure to read L for tipsEtricks. =head1 AUTHOR Program by Tobias Oetiker Etobi@oetiker.chE This manual page by Alex van den Bogaerdt Ealex@ergens.op.het.netE