rrdfetch (1)
Leading comments
Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) Standard preamble: ========================================================================
NAME
rrdfetch - Fetch data from an RRD.SYNOPSIS
rrdtool fetch filenameDESCRIPTION
The fetch function is normally used internally by the graph function to get data from- filename
-
the name of the RRDyou want to fetch the data from.
- CF
-
the consolidation function that is applied to the data you
want to fetch (AVERAGE,MIN,MAX,LAST)
- --resolution|-r resolution (default is the highest resolution)
-
the interval you want the values to have (seconds per
value).
An optional suffix may be used
(e.g. "5m" instead of 300 seconds).
rrdfetch will try to match your request, but it will return
data even if no absolute match is possible. See ``RESOLUTION INTERVAL''.
- --start|-s start (default end-1day)
-
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 SPECIFICATIONsection for a detailed explanation on ways to specify the start time.
- --end|-e end (default now)
-
the end of the time series in seconds since epoch. See also AT-STYLE
TIME SPECIFICATIONsection for a detailed explanation of how to specify the end time.
- --align-start|-a
-
Automatically adjust the start time down to be aligned with the
resolution. The end-time is adjusted by the same amount. This avoids
the need for external calculations described in RESOLUTION INTERVAL, though if a specificRRAis desired this will not ensure the start and end fall within its bounds.
- --daemon|-d address
-
Address of the rrdcached daemon. If specified, a "flush" command is sent
to the server before reading the RRDfiles. This allows rrdtool 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 -l option in the rrdcached manual.
rrdtool fetch --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd AVERAGE
Please note that due to thread-safety reasons, the time specified with -s and -e cannot use the complex forms described in ``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 now. So ``1272535035'' refers to ``09:57:15 (UCT), April 29th 2010'' and ``-3600'' means ``one hour ago''.
RESOLUTION INTERVAL
In order to get RRDtool to fetch anything other than the finest resolution
rrdtool create subdata.rrd -s 10 \ DS:ds0:GAUGE:5m:0:U \ RRA:AVERAGE:0.5:5m:300h \ RRA:AVERAGE:0.5:15m:300h \ RRA:AVERAGE:0.5:1h:50d \ RRA:MAX:0.5:1h:50d \ RRA:AVERAGE:0.5:1d:600d \ RRA:MAX:0.5:1d:600d
This
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 15m -s -1h
However, this will almost always result in a time series that is
Hence, make sure that
- 1.
- both start and end time are a multiple of 900 ("15m")
- 2.
-
both start and end time are within the desired RRA
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"'
Or using the --align-start flag:
rrdtool fetch subdata.rrd AVERAGE -a -r 15m -s -1h
AT-STYLE TIME SPECIFICATION
Apart from the traditional Seconds since epoch, RRDtool does also
understand at-style time specification. The specification is called
``at-style'' after the Unix command at(1) that has moderately complex
ways to specify time to run your job at a certain date and time. The
at-style specification consists of two parts: the TIME REFERENCE SPECIFICATION
The time reference specification is used, well, to establish a reference
moment in time (to which the time offset is then applied to). When present,
it should come first, when omitted, it defaults to now. On its own part,
time reference consists of a time-of-day reference (which should come
first, if present) and a day reference.
The time-of-day can be specified as
The day can be specified as month-name day-of-the-month and optional a 2- or 4-digit year number (e.g. March 8 1999). Alternatively, you can use day-of-week-name (e.g. Monday), or one of the words: yesterday, today, tomorrow. You can also specify the day as a full date in several numerical formats, including MM/DD/[
Finally, you can use the words now, start, end or epoch as your time reference. Now refers to the current moment (and is also the default time reference). Start (end) can be used to specify a time relative to the start (end) time for those tools that use these categories (rrdfetch, rrdgraph) and epoch indicates the *IX epoch (*IX timestamp 0 = 1970-01-01 00:00:00
Month and day of the week names can be used in their naturally abbreviated form (e.g., Dec for December, Sun for Sunday, etc.). The words now, start, end can be abbreviated as n, s, e.
TIME OFFSET SPECIFICATION
The time offset specification is used to add/subtract certain time
intervals to/from the time reference moment. It consists of a sign
(+ or -) and an amount. The following time units can be
used to specify the amount: years, months, weeks, days,
hours, minutes, or seconds. These units can be used in
singular or plural form, and abbreviated naturally or to a single
letter (e.g. +3days, -1wk, -3y). Several time units can be combined
(e.g., -5mon1w2d) or concatenated (e.g., -5h45min = -5h-45min =
-6h+15min = -7h+1h30m-15min, etc.)
In contrast, hours, minutes, and seconds are well defined time intervals, and these are guaranteed to always produce time offsets exactly as specified (e.g. for
- 1.
- If m is used in context of (i.e. right after the) years, months, weeks, or days it is assumed to mean months, while in the context of hours, minutes, and seconds it means minutes. (e.g., in -1y6m or +3w1m m is interpreted as months, while in -3h20m or +5s2m m the parser decides for minutes).
- 2.
- Out of context (i.e. right after the + or - sign) the meaning of m is guessed from the number it directly follows. Currently, if the number's absolute value is below 25 it is assumed that m means months, otherwise it is treated as minutes. (e.g., -25m == -25 minutes, while +24m == +24 months)
Final
TIME SPECIFICATION EXAMPLES
Oct 12 --- October 12 this year
-1month or -1m --- current time of day, only a month before (may yield surprises, see
noon yesterday -3hours --- yesterday morning; can also be specified as 9am-1day.
23:59 31.12.1999 --- 1 minute to the year 2000.
12/31/99 11:59pm --- 1 minute to the year 2000 for imperialists.
12am 01/01/01 --- start of the new millennium
end-3weeks or e-3w --- 3 weeks before end time (may be used as start time specification).
start+6hours or s+6h --- 6 hours after start time (may be used as end time specification).
931225537 --- 18:45 July 5th, 1999 (yes, seconds since 1970 are valid as well).
19970703 12:45 --- 12:45 July 3th, 1997 (my favorite, and its even got an
ENVIRONMENT VARIABLES
The following environment variables may be used to change the behavior of "rrdtool fetch":- RRDCACHED_ADDRESS
- If this environment variable is set it will have the same effect as specifying the "--daemon" option on the command line. If both are present, the command line argument takes precedence.