In some situations it is necessary to get the output of C<rrd_dump> without
writing it to a file or the standard output. In such cases an application
-can ask B<rrd_dump_cb_r> to call an user-defined function each time there
+can ask B<rrd_dump_cb_r> to call a user-defined function each time there
is output to be stored somewhere. This can be used, to e.g. directly feed
an XML parser with the dumped output or transfer the resulting string
in memory.
should write to. There's no specific condition for the callback to detect
when it is called for the first time, nor for the last time. If you require
this for initialization and cleanup you should do those tasks before and
-after calling B<rrd_dump_cr_r> respectively.
+after calling B<rrd_dump_cb_r> respectively.
=item B<rrd_fetch_cb_register(rrd_fetch_cb_t c)>
rrd_graph functionality, you can supply your own rrd_fetch function and register it using
the B<rrd_fetch_cb_register> function.
-The argument signature and api must be the same of the callback function must be aequivalent to the on of B<rrd_fetch_fn> in
+The argument signature and api must be the same of the callback function and must be equivalent to the one of B<rrd_fetch_fn> in
F<rrd_fetch.c>.
To activate the callback function you can use the pseudo filename F<cb//>I<free_form_text>.
Libpng itself requires zlib to build, so we need to help a bit. If you
already have a copy of zlib on your system (which is very likely) you can
drop the settings of LDFLAGS and CPPFLAGS. Note that the backslash (\) at
-the end of line 4 means that line 4 and line 5 are on one line.
+the end of lines means that the command is split over multiple lines.
cd $BUILD_DIR
wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
external clients want to draw graphs of the cached data, they should only be
allowed to use the C<FLUSH> command.
-Authorization does not work when rrcached is socket-activated by systemd.
+Authorization does not work when rrdcached is socket-activated by systemd.
=head2 Encryption
=item RRD::PRINT I<number>
-If the preceding B<RRD::GRAPH> tag contained and B<PRINT> arguments,
+If the preceding B<RRD::GRAPH> tag contained any B<PRINT> arguments,
then you can access their output with this tag. The I<number> argument refers to the
-number of the B<PRINT> argument. This first B<PRINT> has I<number> 0.
+number of the B<PRINT> argument. The first B<PRINT> has I<number> 0.
=item RRD::INTERNAL <var>
Prefilling is done by matching up DS names, RRAs and consolidation
functions and choosing the best available data resolution when doing
-so. Prefilling may not be mathematically correct in all cases (eg. if
+so. Prefilling may not be mathematically correct in all cases (e.g. if
resolutions have to change due to changed stepping of the target RRD
and old and new resolutions do not match up with old/new bin
boundaries in RRAs).
u|15|/ "swt" expired
u|16|
|17|----* sample4, restart "hb", create "pdp" for step1 =
- |18| / = unknown due to 10 "u" labled secs > 0.5 * step
+ |18| / = unknown due to 10 "u" labeled secs > 0.5 * step
|19| /
|20| /
|21|----* sample5, restart "hb"
A shortcut for S<--header=none>.
If you want to restore the dump with RRDtool 1.2 you should use the
-S<--no-header> option since 1.2 can not deal with xml headers.
+S<--no-header> option since 1.2 cannot deal with xml headers.
=item B<--daemon>|B<-d> I<address>
L<"AT-STYLE TIME SPECIFICATION">. The only accepted arguments are "simple
integers". Positive values are interpreted as seconds since epoch, negative
values (and zero) are interpreted as relative to I<now>. So "1272535035" refers
-to "09:57:15 (UCT), April 29th 2010" and "-3600" means "one hour ago".
+to "09:57:15 (UTC), April 29th 2010" and "-3600" means "one hour ago".
=back
I<start+6hours> or I<s+6h> -- 6 hours after start time
(may be used as end time specification).
-I<931225537> -- 18:45 July 5th, 1999
+I<931200300> -- 18:45 (UTC), July 5th, 1999
(yes, seconds since 1970 are valid as well).
I<19970703 12:45> -- 12:45 July 3th, 1997
-(my favorite, and its even got an ISO number (8601)).
+(my favorite, and it has even got an ISO number (8601)).
=head1 ENVIRONMENT VARIABLES
[B<--left-axis-format> I<format-string>]
By default the format of the axis labels gets determined automatically. If
-you want to do this your self, use this option with the same %lf arguments
+you want to do this yourself, use this option with the same %lf arguments
you know from the PRINT and GPRINT commands, or others if using different
formatter.
[B<--right-axis-format> I<format-string>]
By default the format of the axis labels gets determined automatically. If
-you want to do this your self, use this option with the same %lf arguments
+you want to do this yourself, use this option with the same %lf arguments
you know from the PRINT and GPRINT commands, or others if using different
formatter.
Times-Bold, Times-BoldItalic, Times-Italic, Times-Roman, and ZapfDingbats.
For Export type you can define
-XML, XMLENUM (enummerates the value tags <v0>,<v1>,<v2>,...),
+XML, XMLENUM (enumerates the value tags <v0>,<v1>,<v2>,...),
JSON, JSONTIME (adds a timestamp to each data row),
CSV (=comma separated values), TSV (=tab separated values), SSV (=semicolon separated values),
(for comma/tab/semicolon separated values the time format by default is in the form of unix time. to change it to something else use: --x-grid MINUTE:10:HOUR:1:HOUR:4:0:"%Y-%m-%d %H:%M:%S")
Either `AM' or `PM' according to the given time value, or the corresponding
strings for the current locale. Noon is treated as `pm' and midnight as
-`am'. Note that in many locales and `pm' notation is unsupported and in
+`am'. Note that in many locales a `pm' notation is unsupported and in
such cases %p will return an empty string.
=item B<%s>
=head2 String Formatting
The text printed below the actual graph can be formatted by appending special
-escape characters at the end of a text. When ever such a character occurs,
+escape characters at the end of a text. Whenever such a character occurs,
all pending text is pushed onto the graph according to the character
specified.
element!
Since RRDtool 1.3 is using Pango for rending text, you can use Pango markup.
-Pango uses the xml B<span> tags for inline formatting instructions.:
+Pango uses the xml B<span> tags for inline formatting instructions.
A simple example of a marked-up string might be:
=item B<size>
-Font size in 1024ths of a point, or one of the absolute sizes 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', or one of the relative sizes 'smaller' or 'larger'. If you want to specify a absolute size, it's usually easier to take advantage of the ability to specify a partial font description using 'font_desc'; you can use font_desc='12.5' rather than size='12800'.
+Font size in 1024ths of a point, or one of the absolute sizes 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', or one of the relative sizes 'smaller' or 'larger'. If you want to specify an absolute size, it's usually easier to take advantage of the ability to specify a partial font description using 'font_desc'; you can use font_desc='12.5' rather than size='12800'.
=item B<style>
=item B<E<lt>libdbi driverE<gt>>
- which libdbi driver to use (e.g: mysql)
+ which libdbi driver to use (e.g.: mysql)
=item B<E<lt>driver-option-nameE<gt>>=B<E<lt>driver-option-valueE<gt>>
=item B<E<lt>[*]unixtimestamp columnE<gt>>
- defines the column of E<lt>tableE<gt> which contains the unix-timestamp
+ defines the column of <table> which contains the unix-timestamp
- if this is a DATETIME field in the database, then prefix with leading '*'
hex-type-encoding via %xx are translated to the actual value, use %% to use %
=item B<E<lt>data value columnE<gt>>
- defines the column of E<lt>tableE<gt> which contains the value column, which should be graphed
+ defines the column of <table> which contains the value column, which should be graphed
hex-type-encoding via %xx are translated to the actual value, use %% to use %
=item B</E<lt>where clause(s)E<gt>>
- defines one (ore more) where clauses that are joined with AND to filter the entries in the <lt>table<gt>
+ defines one (ore more) where clauses that are joined with AND to filter the entries in the <table>
hex-type-encoding via %xx are translated to the actual value, use %% to use %
=head1 NOTES
-* Naturally you can also use any other kind of driver that libdbi supports - e.g postgres, ...
+* Naturally you can also use any other kind of driver that libdbi supports - e.g. postgres, ...
* From the way the data source is joined, it should also be possible to do joins over different tables
(separate tables with "," in table and add in the WHERE Clauses the table equal joins.
=head1 Performance issues with MySQL backend
-LibDBI has a big performance issue when you retrieve data from a MySQL server. Performance impact is exponentially based on the number of
-values you retrieve from the database.
+Previous versions of LibDBI have a big performance issue when retrieving data from a MySQL server. Performance impact is exponentially based
+on the number of values you retrieve from the database.
For example, it would take more than 2 seconds to graph 5DS on 150 hours of data with a precision of 5 minutes
-(against 100ms when data comes from a RRD file). This bug has been fixed on latest version of LibDBI (not release yet).
-At that time, you would need to compile libdbi and libdbi-drivers from CVS repository to fix it.
-You can find more information on this libdbi-users mailing list thread : http://sourceforge.net/mailarchive/message.php?msg_id=30320894
+(against 100ms when data comes from a RRD file). This bug has been fixed in version 0.9.0 of LibDBI.
+You can find more information on this libdbi-users mailing list thread: http://sourceforge.net/mailarchive/message.php?msg_id=30320894
=head1 BUGS
* at least on Linux please make sure that the libdbi driver is explicitly linked against libdbi.so.0
check via ldd /usr/lib/dbd/libmysql.so, that there is a line with libdbi.so.0.
- otherwise at least the perl module RRDs will fail because the dynamic linker can not find some symbols from libdbi.so.
+ otherwise at least the perl module RRDs will fail because the dynamic linker cannot find some symbols from libdbi.so.
(this only happens when the libdbi driver is actually used the first time!)
This is KNOWN to be the case with RHEL4 and FC4 and FC5! (But actually this is a bug with libdbi make files!)
The function is by design NAN-safe.
This also allows for extrapolation into the future (say a few days)
-- you may need to define the data series whit the optional start= parameter, so that
+- you may need to define the data series with the optional start= parameter, so that
the source data series has enough data to provide prediction also at the beginning of a graph...
The percentile can be between [-100:+100].
The positive percentiles interpolates between values while the negative will take the closest.
-Example: you run 7 shifts with a window of 1800seconds. Assuming that the rrd-file
+Example: you run 7 shifts with a window of 1800 seconds. Assuming that the rrd-file
has a step size of 300 seconds this means we have to do the percentile calculation
based on a max of 42 distinct values (less if you got NAN). that means that in the
best case you get a step rate between values of 2.4 percent.
B<STEPWIDTH>
-The with of the current step in seconds. You can use this to go back from
+The width of the current step in seconds. You can use this to go back from
rate based presentations to absolute numbers
CDEF:abs=rate,STEPWIDTH,*,PREV,ADDNAN
=item B<--noflush>|B<-F>
Omit the C<flush> command usually sent to the daemon prior to retrieving the
-data. If all you are interested in the the RRD Structure, and not the last update
+data. If all you are interested in is the RRD structure, and not the last update
time or current values, then this will improve efficiency.
=back
whole year. While this would take considerable disk space it would
also take a lot of time to analyze the data when you wanted to create
a graph covering the whole year. B<RRDtool> offers a solution to this
-problem through its data consolidation feature. When setting up an
+problem through its data consolidation feature. When setting up a
Round Robin Database (B<RRD>), you can define at which interval this
consolidation should occur, and what consolidation function (B<CF>)
(average, minimum, maximum, last) should be used to build the
Still another application is to add or remove data sources (DS) or
add / remove or alter some aspects of round-robin archives (RRA). These operations
are not really done in-place, but rather generate a new RRD file internally and
-move it over the original file. Data is kept intact during theses operations.
+move it over the original file. Data is kept intact during these operations.
For even more in-depth modifications you may review the
S<B<--source>> and S<B<--template>> options of the B<create> function which
allow you to combine multiple RRD files into a new one and which is even more clever
=item B<--skip-past-updates>|B<-s>
When updating an rrd file with data earlier than the latest update already
-applied, rrdtool will issue an error message an abort. This option instructs
+applied, rrdtool will issue an error message and abort. This option instructs
rrdtool to silently skip such data. It can be useful when re-playing old
data into an rrd file and you are not sure how many updates have already
been applied.