diff --git a/doc/rrdtool.html b/doc/rrdtool.html
index bd284e74f7304ea9c862f6f638f5756b601b22ed..5819e66936847b0445b379259d65b86e3cee04fd 100644 (file)
--- a/doc/rrdtool.html
+++ b/doc/rrdtool.html
+<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>rrdtool</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:root@localhost" />
</head>
<body style="background-color: white">
-<p><a name="__index__"></a></p>
+
<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
<!--
<ul>
<li><a href="#bugs">BUGS</a></li>
<li><a href="#author">AUTHOR</a></li>
</ul>
+
-->
+
+
+</div>
<!-- INDEX END -->
<p>
for RRDtool which allow you to use it directly from Perl, python, Tcl,
PHP, etc.</p>
<dl>
-<dt><strong><a name="item_create"><strong>create</strong></a></strong><br />
-</dt>
+<dt><strong><a name="create" class="item"><strong>create</strong></a></strong></dt>
+
<dd>
-Set up a new Round Robin Database (RRD). Check <a href="././rrdcreate.html">the rrdcreate manpage</a>.
+<p>Set up a new Round Robin Database (RRD). Check <a href="././rrdcreate.html">the rrdcreate manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_update"><strong>update</strong></a></strong><br />
-</dt>
+<dt><strong><a name="update" class="item"><strong>update</strong></a></strong></dt>
+
<dd>
-Store new data values into an RRD. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.
+<p>Store new data values into an RRD. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong><br />
-</dt>
+<dt><strong><a name="updatev" class="item"><strong>updatev</strong></a></strong></dt>
+
<dd>
-Operationally equivalent to <strong>update</strong> except for output. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.
+<p>Operationally equivalent to <strong>update</strong> except for output. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_graph"><strong>graph</strong></a></strong><br />
-</dt>
+<dt><strong><a name="graph" class="item"><strong>graph</strong></a></strong></dt>
+
<dd>
-Create a graph from data stored in one or several RRDs. Apart from
-generating graphs, data can also be extracted to stdout. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>.
+<p>Create a graph from data stored in one or several RRDs. Apart from
+generating graphs, data can also be extracted to stdout. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_dump"><strong>dump</strong></a></strong><br />
-</dt>
+<dt><strong><a name="dump" class="item"><strong>dump</strong></a></strong></dt>
+
<dd>
-Dump the contents of an RRD in plain ASCII. In connection with restore
+<p>Dump the contents of an RRD in plain ASCII. In connection with restore
you can use this to move an RRD from one computer architecture to
-another. Check <a href="././rrddump.html">the rrddump manpage</a>.
+another. Check <a href="././rrddump.html">the rrddump manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_restore"><strong>restore</strong></a></strong><br />
-</dt>
+<dt><strong><a name="restore" class="item"><strong>restore</strong></a></strong></dt>
+
<dd>
-Restore an RRD in XML format to a binary RRD. Check <a href="././rrdrestore.html">the rrdrestore manpage</a>
+<p>Restore an RRD in XML format to a binary RRD. Check <a href="././rrdrestore.html">the rrdrestore manpage</a></p>
</dd>
-<p></p>
-<dt><strong><a name="item_fetch"><strong>fetch</strong></a></strong><br />
-</dt>
+<dt><strong><a name="fetch" class="item"><strong>fetch</strong></a></strong></dt>
+
<dd>
-Get data for a certain time period from a RRD. The graph function
-uses fetch to retrieve its data from an RRD. Check <a href="././rrdfetch.html">the rrdfetch manpage</a>.
+<p>Get data for a certain time period from a RRD. The graph function
+uses fetch to retrieve its data from an RRD. Check <a href="././rrdfetch.html">the rrdfetch manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_tune"><strong>tune</strong></a></strong><br />
-</dt>
+<dt><strong><a name="tune" class="item"><strong>tune</strong></a></strong></dt>
+
<dd>
-Alter setup of an RRD. Check <a href="././rrdtune.html">the rrdtune manpage</a>.
+<p>Alter setup of an RRD. Check <a href="././rrdtune.html">the rrdtune manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_last"><strong>last</strong></a></strong><br />
-</dt>
+<dt><strong><a name="last" class="item"><strong>last</strong></a></strong></dt>
+
<dd>
-Find the last update time of an RRD. Check <a href="././rrdlast.html">the rrdlast manpage</a>.
+<p>Find the last update time of an RRD. Check <a href="././rrdlast.html">the rrdlast manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_info"><strong>info</strong></a></strong><br />
-</dt>
+<dt><strong><a name="info" class="item"><strong>info</strong></a></strong></dt>
+
<dd>
-Get information about an RRD. Check <a href="././rrdinfo.html">the rrdinfo manpage</a>.
+<p>Get information about an RRD. Check <a href="././rrdinfo.html">the rrdinfo manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_rrdresize"><strong>rrdresize</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdresize" class="item"><strong>rrdresize</strong></a></strong></dt>
+
<dd>
-Change the size of individual RRAs. This is dangerous! Check <a href="././rrdresize.html">the rrdresize manpage</a>.
+<p>Change the size of individual RRAs. This is dangerous! Check <a href="././rrdresize.html">the rrdresize manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_xport"><strong>xport</strong></a></strong><br />
-</dt>
+<dt><strong><a name="xport" class="item"><strong>xport</strong></a></strong></dt>
+
<dd>
-Export data retrieved from one or several RRDs. Check <a href="././rrdxport.html">the rrdxport manpage</a>.
+<p>Export data retrieved from one or several RRDs. Check <a href="././rrdxport.html">the rrdxport manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_flushcached"><strong>flushcached</strong></a></strong><br />
-</dt>
+<dt><strong><a name="flushcached" class="item"><strong>flushcached</strong></a></strong></dt>
+
<dd>
-Flush the values for a specific RRD file from memory. Check <a href="././rrdflushcached.html">the rrdflushcached manpage</a>.
+<p>Flush the values for a specific RRD file from memory. Check <a href="././rrdflushcached.html">the rrdflushcached manpage</a>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_rrdcgi"><strong>rrdcgi</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcgi" class="item"><strong>rrdcgi</strong></a></strong></dt>
+
<dd>
-This is a standalone tool for producing RRD graphs on the fly. Check
-<a href="././rrdcgi.html">the rrdcgi manpage</a>.
+<p>This is a standalone tool for producing RRD graphs on the fly. Check
+<a href="././rrdcgi.html">the rrdcgi manpage</a>.</p>
</dd>
-<p></p></dl>
+</dl>
<p>
</p>
<h2><a name="how_does_rrdtool_work">HOW DOES RRDTOOL WORK?</a></h2>
<dl>
-<dt><strong><a name="item_data_acquisition">Data Acquisition</a></strong><br />
-</dt>
+<dt><strong><a name="data_acquisition" class="item">Data Acquisition</a></strong></dt>
+
<dd>
-When monitoring the state of a system, it is convenient to have the
+<p>When monitoring the state of a system, it is convenient to have the
data available at a constant time interval. Unfortunately, you may not
always be able to fetch data at exactly the time you want
-to. Therefore <strong>RRDtool</strong> lets you update the logfile at any time you
+to. Therefore <strong>RRDtool</strong> lets you update the log file at any time you
want. It will automatically interpolate the value of the data-source
(<strong>DS</strong>) at the latest official time-slot (interval) and write this
interpolated value to the log. The original value you have supplied is
stored as well and is also taken into account when interpolating the
-next log entry.
+next log entry.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_consolidation">Consolidation</a></strong><br />
-</dt>
+<dt><strong><a name="consolidation" class="item">Consolidation</a></strong></dt>
+
<dd>
-You may log data at a 1 minute interval, but you might also be
+<p>You may log data at a 1 minute interval, but you might also be
interested to know the development of the data over the last year. You
could do this by simply storing the data in 1 minute intervals for the
whole year. While this would take considerable disk space it would
@@ -198,18 +192,15 @@ consolidation should occur, and what consolidation function (<strong>CF</strong>
(average, minimum, maximum, total, last) should be used to build the
consolidated values (see rrdcreate). You can define any number of
different consolidation setups within one <strong>RRD</strong>. They will all be
-maintained on the fly when new data is loaded into the <strong>RRD</strong>.
+maintained on the fly when new data is loaded into the <strong>RRD</strong>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_round_robin_archives">Round Robin Archives</a></strong><br />
-</dt>
+<dt><strong><a name="round_robin_archives" class="item">Round Robin Archives</a></strong></dt>
+
<dd>
-Data values of the same consolidation setup are stored into Round
+<p>Data values of the same consolidation setup are stored into Round
Robin Archives (<strong>RRA</strong>). This is a very efficient manner to store data
for a certain amount of time, while using a known and constant amount
-of storage space.
-</dd>
-<dd>
+of storage space.</p>
<p>It works like this: If you want to store 1'000 values in 5 minute
interval, <strong>RRDtool</strong> will allocate space for 1'000 data values and a
header area. In the header it will store a pointer telling which slots
single <strong>RRD</strong>, you can setup another one, for storing 750 data values
at a 2 hour interval, for example, and thus keep a log for the last
two months at a lower resolution.</p>
-</dd>
-<dd>
<p>The use of <strong>RRA</strong>s guarantees that the <strong>RRD</strong> does not grow over
time and that old data is automatically eliminated. By using the
consolidation feature, you can still keep data for a very long time,
while gradually reducing the resolution of the data along the time
axis.</p>
-</dd>
-<dd>
<p>Using different consolidation functions (<strong>CF</strong>) allows you to store
exactly the type of information that actually interests you: the maximum
one minute traffic on the LAN, the minimum temperature of your wine cellar,
the total minutes of down time, etc.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_unknown_data">Unknown Data</a></strong><br />
-</dt>
+<dt><strong><a name="unknown_data" class="item">Unknown Data</a></strong></dt>
+
<dd>
-As mentioned earlier, the <strong>RRD</strong> stores data at a constant
+<p>As mentioned earlier, the <strong>RRD</strong> stores data at a constant
interval. Sometimes it may happen that no new data is available when a
value has to be written to the <strong>RRD</strong>. Data acquisition may not be
possible for one reason or other. With <strong>RRDtool</strong> you can handle these
be written to its Round Robin Archive (<strong>RRA</strong>), a validity check is
performed to make sure that the percentage of unknown values in the
data point is above a configurable level. If not, an <em>*UNKNOWN*</em> value
-will be written to the <strong>RRA</strong>.
+will be written to the <strong>RRA</strong>.</p>
</dd>
-<p></p>
-<dt><strong><a name="item_graphing">Graphing</a></strong><br />
-</dt>
+<dt><strong><a name="graphing" class="item">Graphing</a></strong></dt>
+
<dd>
-<strong>RRDtool</strong> allows you to generate reports in numerical and
+<p><strong>RRDtool</strong> allows you to generate reports in numerical and
graphical form based on the data stored in one or several
<strong>RRD</strong>s. The graphing feature is fully configurable. Size, color and
contents of the graph can be defined freely. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>
-for more information on this.
-</dd>
-<p></p>
-<dt><strong><a name="item_aberrant_behavior_detection">Aberrant Behavior Detection</a></strong><br />
-</dt>
-<dd>
-by Jake Brutlag
+for more information on this.</p>
</dd>
+<dt><strong><a name="aberrant_behavior_detection" class="item">Aberrant Behavior Detection</a></strong></dt>
+
<dd>
+<p>by Jake Brutlag</p>
<p><strong>RRDtool</strong> provides the building blocks for near real-time aberrant
behavior detection. These components include:</p>
-</dd>
<ul>
-<li></li>
-An algorithm for predicting the value of a time series one time step
-into the future.
-<p></p>
-<li></li>
-A measure of deviation between predicted and observed values.
-<p></p>
-<li></li>
-A mechanism to decide if and when an observed value or sequence of
-observed values is <em>too deviant</em> from the predicted value(s).
-<p></p></ul>
+<li>
+<p>An algorithm for predicting the value of a time series one time step
+into the future.</p>
+</li>
+<li>
+<p>A measure of deviation between predicted and observed values.</p>
+</li>
+<li>
+<p>A mechanism to decide if and when an observed value or sequence of
+observed values is <em>too deviant</em> from the predicted value(s).</p>
+</li>
+</ul>
<p>Here is a brief explanation of these components:</p>
<p>The Holt-Winters time series forecasting algorithm is an on-line (or
incremental) algorithm that adaptively predicts future observations in
coefficient (a periodic effect, such as a daily cycle). There is one
seasonal coefficient for each time point in the period (cycle). After
a value is observed, each of these components is updated via
-exponential smoothing. This means that the algorithm ``learns'' from
+exponential smoothing. This means that the algorithm "learns" from
past values and uses them to predict the future. The rate of
adaptation is governed by 3 parameters, alpha (intercept), beta
(slope), and gamma (seasonal). The prediction can also be viewed as a
you could, for example, use a front-end application to <strong>RRDtool</strong> to
initiate real-time alerts.</p>
<p>For a detailed description on how to set this up, see <a href="././rrdcreate.html">the rrdcreate manpage</a>.</p>
+</dd>
</dl>
<p>
</p>
<h1><a name="rrdcached__the_caching_daemon">RRDCACHED, THE CACHING DAEMON</a></h1>
<p>For very big setups, updating thousands of RRD files often becomes a serious IO
problem. If you run into such problems, you might want to take a look at
-<a href="././rrdcached.html">the rrdcached manpage</a>, a caching daemon for RRDTool which may help you lessen the
+<a href="././rrdcached.html">the rrdcached manpage</a>, a caching daemon for RRDtool which may help you lessen the
stress on your disks.</p>
<p>
</p>