=head1 NAME

rrdtune - Modify some basic properties of a Round Robin Database

=head1 SYNOPSIS

B<rrdtool> B<tune> I<filename>
S<[B<--heartbeat>|B<-h> I<ds-name>:I<heartbeat>]>
S<[B<--minimum>|B<-i> I<ds-name>:I<min>]>
S<[B<--maximum>|B<-a> I<ds-name>:I<max>]>
S<[B<--data-source-type>|B<-d> I<ds-name>:I<DST>]>
S<[B<--data-source-rename>|B<-r> I<old-name>:I<new-name>]>
S<[B<--deltapos> I<scale-value>]>
S<[B<--deltaneg> I<scale-value>]>
S<[B<--failure-threshold> I<failure-threshold>]>
S<[B<--window-length> I<window-length>]>
S<[B<--alpha> I<adaption-parameter>]>
S<[B<--beta> I<adaption-parameter>]>
S<[B<--gamma> I<adaption-parameter>]>
S<[B<--gamma-deviation> I<adaption-parameter>]>
S<[B<--aberrant-reset> I<ds-name>]>

=head1 DESCRIPTION

The tune option allows you to alter some of the basic configuration
values stored in the header area of a Round Robin Database (B<RRD>).

One application of the B<tune> function is to relax the
validation rules on an B<RRD>. This allows to fill a new B<RRD> with
data available in larger intervals than what you would normally want
to permit. Be very careful with tune operations for COMPUTE data sources.
Setting the I<min>, I<max>, and  I<heartbeat> for a COMPUTE data source
without changing the data source type to a non-COMPUTE B<DST> WILL corrupt
the data source header in the B<RRD>.

A second application of the B<tune> function is to set or alter parameters
used by the specialized function B<RRAs> for aberrant behavior detection.

=over 8

=item I<filename>

The name of the B<RRD> you want to tune.

=item S<B<--heartbeat>|B<-h> I<ds-name>:I<heartbeat>>

modify the I<heartbeat> of a data source. By setting this to a high
value the RRD will accept things like one value per day.

=item S<B<--minimum>|B<-i> I<ds-name>:I<min>>

alter the minimum value acceptable as input from the data source.
Setting I<min> to 'U' will disable this limit.

=item S<B<--maximum>|B<-a> I<ds-name>:I<max>>

alter the maximum value acceptable as input from the data source.
Setting I<max> to 'U' will disable this limit.

=item S<B<--data-source-type>|B<-d> I<ds-name>:I<DST>>

alter the type B<DST> of a data source.

=item S<B<--data-source-rename>|B<-r> I<old-name>:I<new-name>>

rename a data source.

=item S<B<--deltapos> I<scale-value>>

Alter the deviation scaling factor for the upper bound of the
confidence band used internally to calculate violations for the
FAILURES B<RRA>. The default value is 2. Note that this parameter is
not related to graphing confidence bounds which must be specified as a
CDEF argument to generate a graph with confidence bounds. The graph
scale factor need not to agree with the value used internally by the
FAILURES B<RRA>.

=item S<B<--deltaneg> I<scale-value>>

Alter the deviation scaling factor for the lower bound of the confidence band
used internally to calculate violations for the FAILURES B<RRA>. The default
value is 2. As with B<--deltapos>, this argument is unrelated to the scale
factor chosen when graphing confidence bounds.

=item S<B<--failure-threshold> I<failure-threshold>>

Alter the number of confidence bound violations that constitute a failure for
purposes of the FAILURES B<RRA>. This must be an integer less than or equal to
the window length of the FAILURES B<RRA>. This restriction is not verified by
the tune option, so one can reset failure-threshold and window-length
simultaneously. Setting this option will reset the count of violations to 0.

=item S<B<--window-length> I<window-length>>

Alter the number of time points in the temporal window for determining
failures. This must be an integer greater than or equal to the window
length of the FAILURES B<RRA> and less than or equal to 28. Setting
this option will reset the count of violations to 0.

=item S<B<--alpha> I<adaption-parameter>>

Alter the intercept adaptation parameter for the Holt-Winters
forecasting algorithm. This parameter must be between 0 and 1.

=item S<B<--beta> I<adaption-parameter>>

Alter the slope adaptation parameter for the Holt-Winters forecasting
algorithm. This parameter must be between 0 and 1.

=item S<B<--gamma> I<adaption-parameter>>

Alter the seasonal coefficient adaptation parameter for the SEASONAL
B<RRA>. This parameter must be between 0 and 1.

=item S<B<--gamma-deviation> I<adaption-parameter>>

Alter the seasonal deviation adaptation parameter for the DEVSEASONAL
B<RRA>. This parameter must be between 0 and 1.

=item S<B<--aberrant-reset> I<ds-name>>

This option causes the aberrant behavior detection algorithm to reset
for the specified data source; that is, forget all it is has learnt so far.
Specifically, for the HWPREDICT B<RRA>, it sets the intercept and slope
coefficients to unknown. For the SEASONAL B<RRA>, it sets all seasonal
coefficients to unknown. For the DEVSEASONAL B<RRA>, it sets all seasonal
deviation coefficients to unknown. For the FAILURES B<RRA>, it erases
the violation history. Note that reset does not erase past predictions
(the values of the HWPREDICT B<RRA>), predicted deviations (the values of the
DEVPREDICT B<RRA>), or failure history (the values of the FAILURES B<RRA>).
This option will function even if not all the listed B<RRAs> are present.

Due to the implementation of this option, there is an indirect impact on
other data sources in the RRD. A smoothing algorithm is applied to
SEASONAL and DEVSEASONAL values on a periodic basis. During bootstrap
initialization this smoothing is deferred. For efficiency, the implementation
of smoothing is not data source specific. This means that utilizing
reset for one data source will delay running the smoothing algorithm
for all data sources in the file. This is unlikely to have serious
consequences, unless the data being collected for the non-reset data sources
is unusually volatile during the reinitialization period of the reset
data source.

Use of this tuning option is advised when the behavior of the data source
time series changes in a drastic and permanent manner.

=back

=head1 EXAMPLE 1

C<rrdtool tune data.rrd -h in:100000 -h out:100000 -h through:100000>

Set the minimum required heartbeat for data sources 'in', 'out'
and 'through' to 10'000 seconds which is a little over one day in data.rrd.
This would allow to feed old data from MRTG-2.0 right into
RRDtool without generating *UNKNOWN* entries.

=head1 EXAMPLE 2

C<rrdtool tune monitor.rrd --window-length 5 --failure-threshold 3>

If the FAILURES B<RRA> is implicitly created, the default
window-length is 9 and the default failure-threshold is 7. This
command now defines a failure as 3 or more violations in a temporal
window of 5 time points.

=head1 AUTHOR

Tobias Oetiker <tobi@oetiker.ch>

