Code

Imported upstream version 1.4~rc2.
[pkg-rrdtool.git] / doc / rrdtool.html
index abe72c807e62bbb30a4aab787575f96bea646780..bd284e74f7304ea9c862f6f638f5756b601b22ed 100644 (file)
@@ -1,18 +1,14 @@
-<?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">
 
-
-<!-- INDEX BEGIN -->
-<div name="index">
 <p><a name="__index__"></a></p>
+<!-- INDEX BEGIN -->
 <!--
 
 <ul>
                <li><a href="#rrd_server">RRD Server</a></li>
        </ul>
 
+       <li><a href="#rrdcached__the_caching_daemon">RRDCACHED, THE CACHING DAEMON</a></li>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#bugs">BUGS</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
-
 -->
-
-
-</div>
 <!-- INDEX END -->
 
 <p>
@@ -83,85 +76,103 @@ further down. There is also a number of language bindings
 for RRDtool which allow you to use it directly from Perl, python, Tcl,
 PHP, etc.</p>
 <dl>
-<dt><strong><a name="create" class="item"><strong>create</strong></a></strong></dt>
-
+<dt><strong><a name="item_create"><strong>create</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="update" class="item"><strong>update</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_update"><strong>update</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="updatev" class="item"><strong>updatev</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="graph" class="item"><strong>graph</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_graph"><strong>graph</strong></a></strong><br />
+</dt>
 <dd>
-<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>
+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>.
 </dd>
-<dt><strong><a name="dump" class="item"><strong>dump</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_dump"><strong>dump</strong></a></strong><br />
+</dt>
 <dd>
-<p>Dump the contents of an RRD in plain ASCII. In connection with restore
+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>.</p>
+another.  Check <a href="././rrddump.html">the rrddump manpage</a>.
 </dd>
-<dt><strong><a name="restore" class="item"><strong>restore</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_restore"><strong>restore</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>
 </dd>
-<dt><strong><a name="fetch" class="item"><strong>fetch</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_fetch"><strong>fetch</strong></a></strong><br />
+</dt>
 <dd>
-<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>
+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>.
 </dd>
-<dt><strong><a name="tune" class="item"><strong>tune</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_tune"><strong>tune</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="last" class="item"><strong>last</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_last"><strong>last</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="info" class="item"><strong>info</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_info"><strong>info</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="rrdresize" class="item"><strong>rrdresize</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_rrdresize"><strong>rrdresize</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="xport" class="item"><strong>xport</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_xport"><strong>xport</strong></a></strong><br />
+</dt>
 <dd>
-<p>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>.
 </dd>
-<dt><strong><a name="rrdcgi" class="item"><strong>rrdcgi</strong></a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_flushcached"><strong>flushcached</strong></a></strong><br />
+</dt>
 <dd>
-<p>This is a standalone tool for producing RRD graphs on the fly. Check
-<a href="././rrdcgi.html">the rrdcgi manpage</a>.</p>
+Flush the values for a specific RRD file from memory. Check <a href="././rrdflushcached.html">the rrdflushcached manpage</a>.
 </dd>
-</dl>
+<p></p>
+<dt><strong><a name="item_rrdcgi"><strong>rrdcgi</strong></a></strong><br />
+</dt>
+<dd>
+This is a standalone tool for producing RRD graphs on the fly. Check
+<a href="././rrdcgi.html">the rrdcgi manpage</a>.
+</dd>
+<p></p></dl>
 <p>
 </p>
 <h2><a name="how_does_rrdtool_work">HOW DOES RRDTOOL WORK?</a></h2>
 <dl>
-<dt><strong><a name="data_acquisition" class="item">Data Acquisition</a></strong></dt>
-
+<dt><strong><a name="item_data_acquisition">Data Acquisition</a></strong><br />
+</dt>
 <dd>
-<p>When monitoring the state of a system, it is convenient to have the
+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
@@ -169,12 +180,13 @@ 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.</p>
+next log entry.
 </dd>
-<dt><strong><a name="consolidation" class="item">Consolidation</a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_consolidation">Consolidation</a></strong><br />
+</dt>
 <dd>
-<p>You may log data at a 1 minute interval, but you might also be
+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
@@ -186,15 +198,18 @@ 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>.</p>
+maintained on the fly when new data is loaded into the <strong>RRD</strong>.
 </dd>
-<dt><strong><a name="round_robin_archives" class="item">Round Robin Archives</a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_round_robin_archives">Round Robin Archives</a></strong><br />
+</dt>
 <dd>
-<p>Data values of the same consolidation setup are stored into Round
+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.</p>
+of storage space.
+</dd>
+<dd>
 <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
@@ -205,20 +220,25 @@ manner. This automatically limits the history to the last 1'000 values
 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>
-<dt><strong><a name="unknown_data" class="item">Unknown Data</a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_unknown_data">Unknown Data</a></strong><br />
+</dt>
 <dd>
-<p>As mentioned earlier, the <strong>RRD</strong> stores data at a constant
+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
@@ -229,36 +249,40 @@ values is accounted for and when a new consolidated value is ready to
 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>.</p>
+will be written to the <strong>RRA</strong>.
 </dd>
-<dt><strong><a name="graphing" class="item">Graphing</a></strong></dt>
-
+<p></p>
+<dt><strong><a name="item_graphing">Graphing</a></strong><br />
+</dt>
 <dd>
-<p><strong>RRDtool</strong> allows you to generate reports in numerical and
+<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.</p>
+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
 </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>
-<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>
+<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>
 <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
@@ -267,7 +291,7 @@ a time series. Its forecast is the sum of three components: a baseline
 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 &quot;learns&quot; 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
@@ -292,7 +316,6 @@ particular, a FAILURES <strong>RRA</strong> logs potential failures. With these
 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>
@@ -339,8 +362,17 @@ such a port unless you are sure what you are doing.</p>
 <p>
 </p>
 <hr />
+<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
+stress on your disks.</p>
+<p>
+</p>
+<hr />
 <h1><a name="see_also">SEE ALSO</a></h1>
-<p>rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast, rrdxport</p>
+<p>rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast, rrdxport,
+rrdflushcached, rrdcached</p>
 <p>
 </p>
 <hr />