X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=doc%2Frrdfetch.pod;h=0052aa6513b1a82b351d5e705cc5fd185f78d090;hb=dc4997373f9cc1c170bc378ff12fa2c3a23161e9;hp=c938bb545ebf08042265251b376babcd3e38f7f0;hpb=5837606887a6d81e8b1f7588525cb1c8783fb62b;p=rrdtool.git diff --git a/doc/rrdfetch.pod b/doc/rrdfetch.pod index c938bb5..0052aa6 100644 --- a/doc/rrdfetch.pod +++ b/doc/rrdfetch.pod @@ -1,141 +1,213 @@ =head1 NAME -rrdtool fetch - fetch data from an rrd. - -=for html
PDF version.
+rrdfetch - Fetch data from an RRD. =head1 SYNOPSIS -B B I I -S<[B<--resolution>|B<-r> I]> -S<[B<--start>|B<-s> I]> -S<[B<--end>|B<-e> I]> +B B I I +S<[B<--resolution>|B<-r> I]> +S<[B<--start>|B<-s> I]> +S<[B<--end>|B<-e> I]> +S<[B<--daemon> I
]> =head1 DESCRIPTION -The B function is normally used internally by the graph function, -to get data from Bs. B will analyze the B and -will try to retrieve the data in the resolution requested. +The B function is normally used internally by the graph +function to get data from Bs. B will analyze the B +and try to retrieve the data in the resolution requested. The data fetched is printed to stdout. I<*UNKNOWN*> data is often -represented by the string "NaN" depending on your OSs printf +represented by the string "NaN" depending on your OS's printf function. =over 8 -=item I +=item I the name of the B you want to fetch the data from. -=item I +=item I -which consolidation function should have been applied to the data you -want to fetch? (AVERAGE,MIN,MAX,LAST) +the consolidation function that is applied to the data you +want to fetch (AVERAGE,MIN,MAX,LAST) =item B<--resolution>|B<-r> I (default is the highest resolution) -what interval should the values have (seconds per value). B will try -to match your request, but it will return data even if no absolute -match is possible. +the interval you want the values to have (seconds per +value). B will try to match your request, but it will return +data even if no absolute match is possible. B See note below. =item B<--start>|B<-s> I (default end-1day) -when should the data begin. A time in seconds since epoch (1970-01-01) -is required. Negative numbers are relative to the current time. By default +start of the time series. A time in seconds since epoch (1970-01-01) +is required. Negative numbers are relative to the current time. By default, one day worth of data will be fetched. See also AT-STYLE TIME SPECIFICATION -section for a detailed explanation on ways to specify start time. +section for a detailed explanation on ways to specify the start time. =item B<--end>|B<-e> I (default now) -when should the data end. Time in seconds since epoch. See also -AT-STYLE TIME SPECIFICATION section for a detailed explanation of how to specify -end time. +the end of the time series in seconds since epoch. See also AT-STYLE +TIME SPECIFICATION section for a detailed explanation of how to +specify the end time. + +=item B<--daemon> I
+ +Address of the L daemon. If specified, a C command is sent +to the server before reading the RRD files. This allows B to return +fresh data even if the daemon is configured to cache values for a long time. +For a list of accepted formats, see the B<-l> option in the L manual. + + rrdtool fetch --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd AVERAGE + +=back + +=head2 RESOLUTION INTERVAL + +In order to get RRDtool to fetch anything other than the finest resolution RRA +B the start and end time must be specified on boundaries that are +multiples of the desired resolution. Consider the following example: + + rrdtool create subdata.rrd -s 10 DS:ds0:GAUGE:300:0:U \ + RRA:AVERAGE:0.5:30:3600 \ + RRA:AVERAGE:0.5:90:1200 \ + RRA:AVERAGE:0.5:360:1200 \ + RRA:MAX:0.5:360:1200 \ + RRA:AVERAGE:0.5:8640:600 \ + RRA:MAX:0.5:8640:600 + +This RRD collects data every 10 seconds and stores its averages over 5 +minutes, 15 minutes, 1 hour, and 1 day, as well as the maxima for 1 hour +and 1 day. + +Consider now that you want to fetch the 15 minute average data for the +last hour. You might try + + rrdtool fetch subdata.rrd AVERAGE -r 900 -s -1h + +However, this will almost always result in a time series that is +B in the 15 minute RRA. Therefore, the highest resolution RRA, +i.e. 5 minute averages, will be chosen which in this case is not +what you want. + +Hence, make sure that + +=over 3 + +=item 1. + +both start and end time are a multiple of 900 + +=item 2. + +both start and end time are within the desired RRA =back +So, if time now is called "t", do + + end time == int(t/900)*900, + start time == end time - 1hour, + resolution == 900. + +Using the bash shell, this could look be: + + TIME=$(date +%s) + RRDRES=900 + rrdtool fetch subdata.rrd AVERAGE -r $RRDRES \ + -e $(($TIME/$RRDRES*$RRDRES)) -s e-1h + +Or in Perl: + + perl -e '$ctime = time; $rrdres = 900; \ + system "rrdtool fetch subdata.rrd AVERAGE \ + -r $rrdres -e @{[int($ctime/$rrdres)*$rrdres]} -s e-1h"' + + =head2 AT-STYLE TIME SPECIFICATION -Apart from the traditional I, rrdtool does also -understand at-style time specification. The specification is called -"at-style" after Unix command at(1) that has moderately complex ways -to specify time to run your job at. The at-style specification -consists of two parts: B