From: Peter Valdemar Mørch Date: Thu, 3 Jan 2019 22:02:12 +0000 (+0100) Subject: Removed trailing spaces from .pod documentation files X-Git-Tag: v1.7.1~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1a0505aa82bff4edd69e13e6b94c2603e74c5456;p=thirdparty%2Frrdtool-1.x.git Removed trailing spaces from .pod documentation files This fixed warnings like: *** WARNING: line containing nothing but whitespace in paragraph at line 145 in file rrdfetch.pod from podchecker --- diff --git a/doc/PDP_calculation_explanation.pod b/doc/PDP_calculation_explanation.pod index 78bdb9bf..c2fca6be 100644 --- a/doc/PDP_calculation_explanation.pod +++ b/doc/PDP_calculation_explanation.pod @@ -12,7 +12,7 @@ This article explains how PDP are calculated in a detailed yet easy-to-understan If you have not read the tutorials or man pages either on the official site or those by others, then I strongly encourage you to do so. As said in the description, this article will only explain how a PDP is calculated, but not the definition of it. -So please read the following materials to get a basic understanding of PDP: +So please read the following materials to get a basic understanding of PDP: L - By Alex van den Bogaerdt. This article explained PDP in a very detailed and clear way, however, it does not explain the "normalization process" in its "Normalize interval" section in the right way( as opposed to the official version I confirmed with @oetiker himself). The flaw can be easily seen in the bar charts, discussed in the "Calculation logics" section. @@ -32,7 +32,7 @@ To provide an ASCII-friendly explanation, I will explain both versions with the | - | (v1) + | (v1) | _______ (v4) (v5) | | | (v3) ____________ | | | ______________| || | @@ -62,13 +62,13 @@ Let's make everything a little clearer: As can be seen on this page: L, after all the primary data are transformed to rates( except for GAUGE, of course), they have to go through a B if they are not distributed exactly according to the step or on well-defined boundaries in time, in the words of the author. -What does that mean? Basically, if all the B (as opposed to an B value) data make up at least 50% of all slots during a period, then a PDP is calculated from them. +What does that mean? Basically, if all the B (as opposed to an B value) data make up at least 50% of all slots during a period, then a PDP is calculated from them. This version seems to go well until we reach the bar chart part. -According to the ASCII bar chart, we have the following results: +According to the ASCII bar chart, we have the following results: -From second 1 on, the PDP of each period( 1-5,6-10, ...) is computed by averaging all the values within it. +From second 1 on, the PDP of each period( 1-5,6-10, ...) is computed by averaging all the values within it. So: - the PDP from 1 to 5 is (v1*3+v2*2)/5 @@ -97,9 +97,9 @@ Why is that? Because the difference between the official version and Bogaerdt version stems from the way they do the calculation for PDP(6-10) and PDP(11-15). -Let's discuss this in more detail using the above bar chart. +Let's discuss this in more detail using the above bar chart. -=head3 Bogaerdt's version, +=head3 Bogaerdt's version, PDPs are B no matter how values arrive. @@ -107,9 +107,9 @@ For example, the value at slot 17 comes after the last slot of PDP(11-15). Also, =head3 The official version -PDPs are B, be it 1 step, 2 steps or n steps; in other words, PDPs may be computed B. +PDPs are B, be it 1 step, 2 steps or n steps; in other words, PDPs may be computed B. -For example, the update at slot 17 spans PDP(6-10) and PDP(11-15) because the B previous value is at 7 and 7 is within 6 and 10 , and 17 is after 15. PDP(1-5) and PDP(16-20) are not included since the update at slot 7 has already triggered the calculation for PDP(1-5) and the update at slot 17 comes before the last slot of PDP(16-20) which is 20. +For example, the update at slot 17 spans PDP(6-10) and PDP(11-15) because the B previous value is at 7 and 7 is within 6 and 10 , and 17 is after 15. PDP(1-5) and PDP(16-20) are not included since the update at slot 7 has already triggered the calculation for PDP(1-5) and the update at slot 17 comes before the last slot of PDP(16-20) which is 20. That's the reason why PDP(6-10) and PDP(11-15) have the same value, (v2*2+v3*8). @@ -120,10 +120,10 @@ If you are still confused, don't worry, an example is here to help you. Let's get our hands dirty with some commands rrdtool create target.rrd --start 1000000000 --step 5 DS:mem:GAUGE:20:0:100 RRA:AVERAGE:0.5:1:10 - rrdtool update target.rrd 1000000003:8 1000000006:1 1000000017:6 \ - 1000000020:7 1000000021:7 1000000022:4 \ - 1000000023:3 1000000036:1 1000000037:2 \ - 1000000038:3 1000000039:3 1000000042:5 + rrdtool update target.rrd 1000000003:8 1000000006:1 1000000017:6 \ + 1000000020:7 1000000021:7 1000000022:4 \ + 1000000023:3 1000000036:1 1000000037:2 \ + 1000000038:3 1000000039:3 1000000042:5 rrdtool fetch target.rrd AVERAGE --start 1000000000 --end 1000000045 Basically, the above codes contain 3 commands: create, update and fetch. First create a new rrd file, and then we feed in some data and last we fetch all the PDPs from the rrd. diff --git a/doc/librrd.pod b/doc/librrd.pod index 4853be96..6c8d6f90 100644 --- a/doc/librrd.pod +++ b/doc/librrd.pod @@ -63,7 +63,7 @@ If your data does not reside in rrd files, but you would like to draw charts usi rrd_graph functionality, you can supply your own rrd_fetch function and register it using the B function. -The argument signature and api must be the same of the callback function and must be equivalent to the one of B in +The argument signature and api must be the same of the callback function and must be equivalent to the one of B in F. To activate the callback function you can use the pseudo filename FI. diff --git a/doc/rrd-beginners.pod b/doc/rrd-beginners.pod index e7dea72b..861559de 100644 --- a/doc/rrd-beginners.pod +++ b/doc/rrd-beginners.pod @@ -292,26 +292,26 @@ generation is done using Perl scripts. These scripts are shown below: # calculate the average of the array my $tot_mem_ave = $tot_mem_sum/($count); # create the graph - RRDs::graph ("/images/mem_$count.png", - "--title= Memory Usage", - "--vertical-label=Memory Consumption (MB)", - "--start=$start_time", - "--end=$end_time", - "--color=BACK#CCCCCC", - "--color=CANVAS#CCFFFF", - "--color=SHADEB#9999CC", - "--height=125", - "--upper-limit=656", - "--lower-limit=0", - "--rigid", - "--base=1024", - "DEF:tot_mem=target.rrd:mem:AVERAGE", + RRDs::graph ("/images/mem_$count.png", + "--title= Memory Usage", + "--vertical-label=Memory Consumption (MB)", + "--start=$start_time", + "--end=$end_time", + "--color=BACK#CCCCCC", + "--color=CANVAS#CCFFFF", + "--color=SHADEB#9999CC", + "--height=125", + "--upper-limit=656", + "--lower-limit=0", + "--rigid", + "--base=1024", + "DEF:tot_mem=target.rrd:mem:AVERAGE", "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/", "CDEF:machine_mem=tot_mem,656,+,tot_mem,-", "COMMENT:Memory Consumption between $start_time", "COMMENT: and $end_time ", "HRULE:656#000000:Maximum Available Memory - 656 MB", - "AREA:machine_mem#CCFFFF:Memory Unused", + "AREA:machine_mem#CCFFFF:Memory Unused", "AREA:tot_mem_cor#6699CC:Total memory consumed in MB"); my $err=RRDs::error; if ($err) {print "problem generating the graph: $err\n";} diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod index fcb2356b..05af8520 100644 --- a/doc/rrdbuild.pod +++ b/doc/rrdbuild.pod @@ -53,7 +53,7 @@ Now make sure the BUILD_DIR exists and go there: cd $BUILD_DIR Lets first assume you already have all the necessary libraries -pre-installed. +pre-installed. wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.7.0.tar.gz gunzip -c rrdtool-1.7.0.tar.gz | tar xf - @@ -86,7 +86,7 @@ xrender is required for compilation with cairo. This is not true and also bad since OpenSolaris does not include an F file. Use Perl to fix this: - perl -i~ -p -e 's/(Requires.*?)\s*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc + perl -i~ -p -e 's/(Requires.*?)\s*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc Make sure the RRDtool build system finds your new compiler @@ -165,7 +165,7 @@ the syntax again differs from system to system: =item Solaris - export LDFLAGS=-R${INSTALL_DIR}/lib + export LDFLAGS=-R${INSTALL_DIR}/lib if you are using the Sun Studio/Forte compiler, you may also want to set @@ -174,7 +174,7 @@ if you are using the Sun Studio/Forte compiler, you may also want to set =item Linux - export LDFLAGS="-Wl,--rpath -Wl,${INSTALL_DIR}/lib" + export LDFLAGS="-Wl,--rpath -Wl,${INSTALL_DIR}/lib" =item HPUX @@ -184,7 +184,7 @@ if you are using the Sun Studio/Forte compiler, you may also want to set export LDFLAGS="-Wl,-blibpath:${INSTALL_DIR}/lib" -=back +=back If you have GNU make installed and it is not called 'make', then do @@ -216,7 +216,7 @@ environment variable will be helpful. =head3 Building zlib -Chances are very high that you already have that on your system ... +Chances are very high that you already have that on your system ... cd $BUILD_DIR wget http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz diff --git a/doc/rrdcgi.pod b/doc/rrdcgi.pod index f30ebc4b..4e261247 100644 --- a/doc/rrdcgi.pod +++ b/doc/rrdcgi.pod @@ -142,7 +142,7 @@ number of the B argument. The first B has I 0. This tag gets replaced by an internal var. Currently these vars are known: VERSION, COMPILETIME. -These vars represent the compiled-in values. +These vars represent the compiled-in values. =back diff --git a/doc/rrdcreate.pod b/doc/rrdcreate.pod index 76021933..810b6dc0 100644 --- a/doc/rrdcreate.pod +++ b/doc/rrdcreate.pod @@ -37,7 +37,7 @@ any data timed before or at the time specified. See also AT-STYLE TIME SPECIFICATION section in the I documentation for other ways to specify time. -If one or more source files is used to pre-fill the new B, +If one or more source files is used to pre-fill the new B, the B<--start> option may be omitted. In that case, the latest update time among all source files will be used as the last update time of the new B file, effectively setting the start time. @@ -55,7 +55,7 @@ Do not clobber an existing file of the same name. =head2 B<--daemon>|B<-d> I
-Address of the L daemon. For a list of accepted formats, see +Address of the L daemon. For a list of accepted formats, see the B<-l> option in the L manual. rrdtool create --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd I @@ -64,7 +64,7 @@ the B<-l> option in the L manual. Specifies a template B file to take step, DS and RRA definitions from. This allows one to base the structure of a new file on some existing file. The data of the template -file is NOT used for pre-filling, but it is possible to specify the same file as a +file is NOT used for pre-filling, but it is possible to specify the same file as a source file (see below). Additional DS and RRA definitions are permitted, and will be added to those taken @@ -72,13 +72,13 @@ from the template. =head2 B<--source>|B<-r> I -One or more source B files may be named on the command line. Data from these +One or more source B files may be named on the command line. Data from these source files will be used to prefill the created B file. The output file and one source file may refer to the same file name. This will effectively replace the source file with the -new B file. While there is the danger to loose the source file because it -gets replaced, there is no danger that the source and the new file may be +new B file. While there is the danger to loose the source file because it +gets replaced, there is no danger that the source and the new file may be "garbled" together at any point in time, because the new file will always be -created as a temporary file first and will only be moved to its final +created as a temporary file first and will only be moved to its final destination once it has been written in its entirety. Prefilling is done by matching up DS names, RRAs and consolidation @@ -90,26 +90,26 @@ boundaries in RRAs). In other words: A best effort is made to preserve data during prefilling. Also, pre-filling of RRAs may only be possible for -certain kinds of DS types. Prefilling may also have strange effects on -Holt-Winters forecasting RRAs. In other words: there is no guarantee +certain kinds of DS types. Prefilling may also have strange effects on +Holt-Winters forecasting RRAs. In other words: there is no guarantee for data-correctness. -When "pre-filling" a B file, the structure of the new file must be -specified as usual using DS and RRA specifications as outlined below. Data will +When "pre-filling" a B file, the structure of the new file must be +specified as usual using DS and RRA specifications as outlined below. Data will be taken from source files based on DS names and types and in the order the source files are specified in. Data sources with the same name from different source files -will be combined to form a new data source. Generally, for any point in time the -new B file will cover after its creation, data from only one source file -will have been used for pre-filling. However, data from multiple sources may be -combined if it refers to different times or an earlier named source file holds +will be combined to form a new data source. Generally, for any point in time the +new B file will cover after its creation, data from only one source file +will have been used for pre-filling. However, data from multiple sources may be +combined if it refers to different times or an earlier named source file holds unknown data for a time where a later one holds known data. If this automatic data selection is not desired, the DS syntax allows one to specify -a mapping of target and source data sources for prefilling. This syntax allows one to -rename data sources and to restrict prefilling for a DS to only use data from a +a mapping of target and source data sources for prefilling. This syntax allows one to +rename data sources and to restrict prefilling for a DS to only use data from a single source file. -Prefilling currently only works reliably for RRAs using one of the classic +Prefilling currently only works reliably for RRAs using one of the classic consolidation functions, that is one of: AVERAGE, MIN, MAX, LAST. It might also currently have problems with COMPUTE data sources. @@ -254,15 +254,15 @@ similar to the restriction that Bs must refer only to Bs and Bs previously defined in the same graph command. When pre-filling the new B file using one or more source Bs, the DS specification -may hold an optional mapping after the DS name. This takes the form of an -equal sign followed by a mapped-to DS name and an optional source index enclosed +may hold an optional mapping after the DS name. This takes the form of an +equal sign followed by a mapped-to DS name and an optional source index enclosed in square brackets. For example, the DS DS:a=b[2]:GAUGE:120:0:U -specifies that the DS named I should be pre-filled from the DS named I in +specifies that the DS named I should be pre-filled from the DS named I in the second listed source file (source indices are 1-based). =head2 BIB<:>I @@ -278,7 +278,7 @@ data point>. The data is also processed with the consolidation function (I) of the archive. There are several consolidation functions that consolidate primary data points via an aggregate function: B, -B, B, B. +B, B, B. =over @@ -365,7 +365,7 @@ First, each of the Bs is updated once for every primary data point. Second, these B are interdependent. To generate real-time confidence bounds, a matched set of SEASONAL, DEVSEASONAL, DEVPREDICT, and either HWPREDICT or MHWPREDICT must exist. Generating smoothed values of the primary -data points requires a SEASONAL B and either an HWPREDICT or MHWPREDICT +data points requires a SEASONAL B and either an HWPREDICT or MHWPREDICT B. Aberrant behavior detection requires FAILURES, DEVSEASONAL, SEASONAL, and either HWPREDICT or MHWPREDICT. @@ -384,10 +384,10 @@ discussion will refer to HWPREDICT, but MHWPREDICT may be substituted in its place. The predicted deviations are stored in DEVPREDICT (think a standard deviation -which can be scaled to yield a confidence band). The FAILURES B stores -binary indicators. A 1 marks the indexed observation as failure; that is, the -number of confidence bounds violations in the preceding window of observations -met or exceeded a specified threshold. An example of using these B to graph +which can be scaled to yield a confidence band). The FAILURES B stores +binary indicators. A 1 marks the indexed observation as failure; that is, the +number of confidence bounds violations in the preceding window of observations +met or exceeded a specified threshold. An example of using these B to graph confidence bounds and failures appears in L. The SEASONAL and DEVSEASONAL B store the seasonal coefficients for the @@ -584,8 +584,8 @@ same average rate. I<-- Don Baarda Edon.baarda@baesystems.comE> u|05| / u|06|/ "hbt" expired u|07| - |08|----* sample2, restart "hb" - |09| / + |08|----* sample2, restart "hb" + |09| / |10| / u|11|----* sample3, restart "hb" u|12| / @@ -593,7 +593,7 @@ same average rate. I<-- Don Baarda Edon.baarda@baesystems.comE> step1_u|14| / u|15|/ "swt" expired u|16| - |17|----* sample4, restart "hb", create "pdp" for step1 = + |17|----* sample4, restart "hb", create "pdp" for step1 = |18| / = unknown due to 10 "u" labeled secs > 0.5 * step |19| / |20| / @@ -606,7 +606,7 @@ same average rate. I<-- Don Baarda Edon.baarda@baesystems.comE> |27|----* sample7, restart "hb" step2__|28| / |22| / - |23|----* sample8, restart "hb", create "pdp" for step1, create "cdp" + |23|----* sample8, restart "hb", create "pdp" for step1, create "cdp" |24| / |25| / @@ -707,7 +707,7 @@ the FAILURES B. The same RRD file and B are created with the following command, which explicitly creates all specialized function B using L<"STEP, HEARTBEAT, and Rows As Durations">. - + rrdtool create monitor.rrd --step 5m \ DS:ifOutOctets:COUNTER:30m:0:4294967295 \ RRA:AVERAGE:0.5:1:2016 \ diff --git a/doc/rrdfetch.pod b/doc/rrdfetch.pod index e50aeb84..b8fb62df 100644 --- a/doc/rrdfetch.pod +++ b/doc/rrdfetch.pod @@ -142,7 +142,7 @@ Or in Perl: -r $rrdres -e @{[int($ctime/$rrdres)*$rrdres]} -s e-1h"' Or using the B<--align-start> flag: - + rrdtool fetch subdata.rrd AVERAGE -a -r 15m -s -1h @@ -186,10 +186,10 @@ Finally, you can use the words B, B, B or B as your time reference. B refers to the current moment (and is also the default time reference). B (B) can be used to specify a time relative to the start (end) time for those tools that use these -categories (B, L) and B indicates the +categories (B, L) and B indicates the *IX epoch (*IX timestamp 0 = 1970-01-01 00:00:00 UTC). B is useful to disambiguate between a timestamp value and some forms -of abbreviated date/time specifications, because it allows one to use +of abbreviated date/time specifications, because it allows one to use time offset specifications using units, eg. B+19711205s unambiguously denotes timestamp 19711205 and not 1971-12-05 00:00:00 UTC. diff --git a/doc/rrdfirst.pod b/doc/rrdfirst.pod index 203c6aac..cee332e5 100644 --- a/doc/rrdfirst.pod +++ b/doc/rrdfirst.pod @@ -25,7 +25,7 @@ B. =item B<--daemon>|B<-d> I
-Address of the L daemon. For a list of accepted formats, see +Address of the L daemon. For a list of accepted formats, see the B<-l> option in the L manual. rrdtool first --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd diff --git a/doc/rrdgraph.pod b/doc/rrdgraph.pod index 4086d249..6dd9910b 100644 --- a/doc/rrdgraph.pod +++ b/doc/rrdgraph.pod @@ -86,7 +86,7 @@ one pixel will silently be ignored. [B<-t>|B<--title> I] -A horizontal string placed at the top of the graph which may be +A horizontal string placed at the top of the graph which may be separated into multiple lines using
or \n [B<-v>|B<--vertical-label> I] @@ -254,7 +254,7 @@ Place the Y grid dynamically based on the graph's Y range. The algorithm ensures that you always have a grid, that there are enough but not too many grid lines, and that the grid is metric. That is the grid lines are placed every 1, 2, 5 or 10 units. This parameter will also ensure that you get -enough decimals displayed even if your graph goes from 69.998 to 70.001. +enough decimals displayed even if your graph goes from 69.998 to 70.001. (contributed by Sasha Mikheev). [B<-o>|B<--logarithmic>] @@ -286,7 +286,7 @@ fiddling with the y-axis labeling. [B<--units=si>] -With this option y-axis values on logarithmic graphs will be scaled to +With this option y-axis values on logarithmic graphs will be scaled to the appropriate units (k, M, etc.) instead of using exponential notation. Note that for linear graphs, SI notation is used by default. @@ -365,7 +365,7 @@ PRINT and graphv will be complete regardless. Note that the behavior of lazy in this regard has seen several changes over time. The only thing you can really rely on before RRDtool 1.3.7 is that lazy will not generate the graph when it is already there and up to date, and also that it will output -the size of the graph. +the size of the graph. [B<-d>|B<--daemon> I
] @@ -408,7 +408,7 @@ A green arrow is made by: C<--color ARROW#00FF00> by default the grid is drawn in a 1 on, 1 off pattern. With this option you can set this yourself --grid-dash 1:3 for a dot grid - + --grid-dash 1:0 for uninterrupted grid lines [B<--border> I] @@ -483,7 +483,7 @@ no text is rendered bitmapped. All text in RRDtool is rendered using Pango. With the B<--pango-markup> option, all text will be processed by pango markup. This allows one to embed some simple html -like markup tags using +like markup tags using text @@ -497,7 +497,7 @@ Apart from the verbose syntax, there are also the following short tags available sup Superscript small Makes font relatively smaller, equivalent to tt Monospace font - u Underline + u Underline More details on L. @@ -523,7 +523,7 @@ Courier-BoldOblique, Courier-Oblique, Courier, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique, Helvetica, Symbol, Times-Bold, Times-BoldItalic, Times-Italic, Times-Roman, and ZapfDingbats. -For Export type you can define +For Export type you can define XML, XMLENUM (enumerates the value tags ,,,...), JSON, JSONTIME (adds a timestamp to each data row), CSV (=comma separated values), TSV (=tab separated values), SSV (=semicolon separated values), @@ -547,7 +547,7 @@ measurement, 1 kb/s is 1000 b/s. [B<-W>|B<--watermark> I] -Adds the given string as a watermark, horizontally centered, at the bottom +Adds the given string as a watermark, horizontally centered, at the bottom of the graph. [B<-Z>|B<--use-nan-for-all-missing-data>] diff --git a/doc/rrdgraph_data.pod b/doc/rrdgraph_data.pod index 65beab3d..b53c4643 100644 --- a/doc/rrdgraph_data.pod +++ b/doc/rrdgraph_data.pod @@ -112,7 +112,7 @@ B also works on such an array but in a different way. For example, I would scan each of the array members and store the maximum value. -=head2 When do you use B versus B? +=head2 When do you use B versus B? Use B to transform your data prior to graphing. In the above example, we'd use a B to transform bytes to bits before diff --git a/doc/rrdgraph_graph.pod b/doc/rrdgraph_graph.pod index 8958cfe6..3afbef11 100644 --- a/doc/rrdgraph_graph.pod +++ b/doc/rrdgraph_graph.pod @@ -458,7 +458,7 @@ element! Since RRDtool 1.3 is using Pango for rending text, you can use Pango markup. Pango uses the xml B tags for inline formatting instructions. -A simple example of a marked-up string might be: +A simple example of a marked-up string might be: Blue text is cool! @@ -586,7 +586,7 @@ Monospace font =item B -Underline +Underline =back diff --git a/doc/rrdgraph_libdbi.pod b/doc/rrdgraph_libdbi.pod index f0e863be..9b5da037 100644 --- a/doc/rrdgraph_libdbi.pod +++ b/doc/rrdgraph_libdbi.pod @@ -43,7 +43,7 @@ This pseudo-rrd-filename defines a sql datasource: =item B[*]unixtimestamp columnE> - defines the column of which contains the unix-timestamp + defines the column of
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 % @@ -121,19 +121,19 @@ To illustrate this here a command to create a graph that contains the actual val * 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. +* 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. This has not been tested!!!) * It should also be relatively simple to add to the database using the same data source string. This has not been implemented... -* The aggregation functions are ignored and several data columns are used instead +* The aggregation functions are ignored and several data columns are used instead to avoid querying the same SQL several times when minimum, average and maximum are needed for graphing... * for DB efficiency you should think of having 2 tables, one containing historic values and the other containing the latest data. This second table should be kept small to allow for the least amount of blocking SQL statements. - With mysql you can even use myisam table-type for the first and InnoDB for the second. + With mysql you can even use myisam table-type for the first and InnoDB for the second. This is especially interesting as with tables with +100M rows myisam is much smaller then InnoDB. * To debug the SQL statements set the environment variable RRDDEBUGSQL and the actual SQL statements and the timing is printed to stderr. @@ -142,26 +142,26 @@ To illustrate this here a command to create a graph that contains the actual val =head1 Performance issues with MySQL backend -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 in version 0.9.0 of LibDBI. +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 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. +* 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 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!) * at least version 0.8.1 of libdbi exhibits a bug with BINARY fields - (shorttext,text,mediumtext,longtext and possibly also BINARY and BLOB fields), - that can result in coredumps of rrdtool. + (shorttext,text,mediumtext,longtext and possibly also BINARY and BLOB fields), + that can result in coredumps of rrdtool. The tool will tell you on stderr if this occurs, so that you know what may be the reason. - If you are not experiencing these coredumps, then set the environment variable RRD_NO_LIBDBI_BUG_WARNING, + If you are not experiencing these coredumps, then set the environment variable RRD_NO_LIBDBI_BUG_WARNING, and then the message will not get shown. =head1 AUTHOR diff --git a/doc/rrdlastupdate.pod b/doc/rrdlastupdate.pod index bb94a729..4edaff00 100644 --- a/doc/rrdlastupdate.pod +++ b/doc/rrdlastupdate.pod @@ -9,7 +9,7 @@ S<[B<--daemon>|B<-d> I
]> =head1 DESCRIPTION -The B function returns the UNIX timestamp and the +The B function returns the UNIX timestamp and the value stored for each datum in the most recent update of an RRD. =over 8 diff --git a/doc/rrdlua.pod b/doc/rrdlua.pod index 73e21cb9..aca2aac2 100644 --- a/doc/rrdlua.pod +++ b/doc/rrdlua.pod @@ -44,7 +44,7 @@ Start your programs with: package.cpath require 'rrd' --------------------------------------------------------------- - + OBS: If you configured with --enable-lua-site-install, you don't need to set package.cpath like above. @@ -69,9 +69,9 @@ programs where to find it by changing the Lua var LUA_PATH: LUA_PATH = original_LUA_PATH original_LUA_PATH = nil --- end of code to require compat-5.1 --------------------------- - + Now we can require the rrd module in the same way we did for 5.1 above: - + --------------------------------------------------------------- package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' .. package.cpath @@ -87,39 +87,39 @@ letting the program abort, by calling the module functions through Lua protected calls - 'pcall' or 'xpcall'. Ex: program t.lua - + --- compat-5.1.lua is only necessary for Lua 5.0 ---------------- -- uncomment below if your distro has not compat-5.1 -- original_LUA_PATH = LUA_PATH -- try only compat-5.1.lua installed with RRDtool package -- LUA_PATH = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.lua' - + -- here we use a protected call to require compat-5.1 local r = pcall(require, 'compat-5.1') if not r then print('** could not load compat-5.1.lua') os.exit(1) end - + -- uncomment below if your distro has not compat-5.1 -- LUA_PATH = original_LUA_PATH -- original_LUA_PATH = nil --- end of code to require compat-5.1 --------------------------- - + -- If the Lua RRDtool module was installed together with RRDtool, -- in /usr/local/rrdtool-1.3.2/lib/lua/5.0, package.cpath must be -- set accordingly so that 'require' can find the module: - + package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' .. package.cpath - + local rrd = require 'rrd' rrd.update ("mydemo.rrd","N:12:13") - + If we execute the program above we'll get: $ lua t.lua - + lua: t.lua:27: opening 'mydemo.rrd': No such file or directory stack traceback: [C]: in function `update' @@ -173,10 +173,10 @@ containing the data source names and their data points respectively, and the final timestamp. --require compat-5.1 if necessary - + package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' .. package.cpath - + local rrd = require "rrd" local first, last = rrd.first("test.rrd"), rrd.last("test.rrd") local start, step, names, data = diff --git a/doc/rrdrestore.pod b/doc/rrdrestore.pod index f3f8fc62..e683624c 100644 --- a/doc/rrdrestore.pod +++ b/doc/rrdrestore.pod @@ -17,8 +17,8 @@ it to the native B format. =item I -The name of the B file you want to restore. The special filename "-" -(a single dash) is interpreted as standard input. +The name of the B file you want to restore. The special filename "-" +(a single dash) is interpreted as standard input. In order to support the restore command in pipe mode (especially when using B over a network connection), when using "-" as a filename diff --git a/doc/rrdruby.pod b/doc/rrdruby.pod index 3aa512c1..e97c345c 100644 --- a/doc/rrdruby.pod +++ b/doc/rrdruby.pod @@ -24,13 +24,13 @@ to the other B documentation for functions and valid arguments. =head1 EXAMPLE $: << '/path/to/rrdtool/lib/ruby/1.8/i386-linux' - require "RRD" + require "RRD" name = "test" rrd = "#{name}.rrd" start = Time.now.to_i - RRD.create( + RRD.create( rrd, "--start", "#{start - 1}", "--step", "300", @@ -46,7 +46,7 @@ to the other B documentation for functions and valid arguments. puts puts "fetching data from #{rrd}" - (fstart, fend, data, step) = RRD.fetch(rrd, "--start", start.to_s, "--end", + (fstart, fend, data, step) = RRD.fetch(rrd, "--start", start.to_s, "--end", (start + 300 * 300).to_s, "AVERAGE") puts "got #{data.length} data points from #{fstart} to #{fend}" puts @@ -54,10 +54,10 @@ to the other B documentation for functions and valid arguments. puts "generating graph #{name}.png" RRD.graph( "#{name}.png", - "--title", " RubyRRD Demo", + "--title", " RubyRRD Demo", "--start", "#{start+3600}", "--end", "start + 1000 min", - "--interlace", + "--interlace", "--imgformat", "PNG", "--width=450", "DEF:a=#{rrd}:a:AVERAGE", @@ -65,7 +65,7 @@ to the other B documentation for functions and valid arguments. "CDEF:line=TIME,2400,%,300,LT,a,UNKN,IF", "AREA:b#00b6e4:beta", "AREA:line#0022e9:alpha", - "LINE3:line#ff0000") + "LINE3:line#ff0000") puts If you use the B<--ruby-site-install> configure option you can drop the $: diff --git a/doc/rrdtune.pod b/doc/rrdtune.pod index 4875ecdc..02082f0e 100644 --- a/doc/rrdtune.pod +++ b/doc/rrdtune.pod @@ -45,13 +45,13 @@ the data source header in the B. A second application of the B function is to set or alter parameters used by the specialized function B for aberrant behavior detection. -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 +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 these operations. -For even more in-depth modifications you may review the -S> and S> options of the B function which -allow you to combine multiple RRD files into a new one and which is even more clever +For even more in-depth modifications you may review the +S> and S> options of the B function which +allow you to combine multiple RRD files into a new one and which is even more clever in what data it is able to keep or "regenerate". =over 8 @@ -155,8 +155,8 @@ coefficients to unknown. For the DEVSEASONAL B, it sets all seasonal deviation coefficients to unknown. For the FAILURES B, it erases the violation history. Note that reset does not erase past predictions (the values of the HWPREDICT or MHWPREDICT B), predicted deviations (the -values of the DEVPREDICT B), or failure history (the values of the -FAILURES B). This option will function even if not all the listed +values of the DEVPREDICT B), or failure history (the values of the +FAILURES B). This option will function even if not all the listed B are present. Due to the implementation of this option, there is an indirect impact on @@ -181,8 +181,8 @@ TODO: add proper documentation =item B<--daemon>|B<-D> I
-B: Because the B<-d> (small letter 'd') option was already taken, this -function (unlike most other) uses the capital letter 'D' for the one-letter +B: Because the B<-d> (small letter 'd') option was already taken, this +function (unlike most other) uses the capital letter 'D' for the one-letter option to name the cache daemon. If given, B will try to connect to the caching daemon @@ -193,12 +193,12 @@ copy/modify operation. Afterwards the I will be forgotten by the cache daemon, so that the next access using the caching daemon will read the proper structure. -This sequence of operations is designed to achieve a consistent overall +This sequence of operations is designed to achieve a consistent overall result with respect to -RRD internal file consistency when using one of the B or B changing +RRD internal file consistency when using one of the B or B changing operations (that is: the resulting file should always be a valid RRD file, regardless of concurrent updates through the caching daemon). -Regarding data consistency such guarantees are not made: Without external +Regarding data consistency such guarantees are not made: Without external synchronization concurrent updates may be lost. For a list of accepted formats, see the B<-l> option in the L manual. @@ -206,18 +206,18 @@ For a list of accepted formats, see the B<-l> option in the L manual. =item BI Every data source named with a DEL specification will be removed. -The resulting RRD will miss both the definition and the data for that +The resulting RRD will miss both the definition and the data for that data source. Multiple DEL specifications are permitted. =item BI For every such data source definition (for the exact syntax see the -B command), a new data source will be added to the RRD. Multiple DS +B command), a new data source will be added to the RRD. Multiple DS specifications are permitted. =item BI -Removes the RRA with index I. The index is zero-based, +Removes the RRA with index I. The index is zero-based, that is the very first RRA has index 0. =item BI diff --git a/doc/rrdtutorial.pod b/doc/rrdtutorial.pod index 06261e80..4e667165 100644 --- a/doc/rrdtutorial.pod +++ b/doc/rrdtutorial.pod @@ -323,7 +323,7 @@ It should return the following output: 920808600: 6.6666666667e-03 920808900: 3.3333333333e-03 920809200: nan - 920809500: nan + 920809500: nan Note that you might get more rows than you expect. The reason for this is that you ask for a time range that ends on 920809200. The number that is