[rrd-users] Sliding Window TREND with out-of-graph data (correction)

Karl Fischer rrd-users at ficos.de
Sat Sep 13 22:31:30 CEST 2008


Bernhard Schmidt wrote:
> Hello,
> 
> I'm using rrdtool to graph a very simple single GAUGE counter (the
> number of active IPv6 hosts in a part of our network) into a simple RRD
> file with a stepsize of 3600 seconds and without any aggregation.
> 
> To get a better visible trend from the data I was trying to use the
> TREND or TRENDNAN function with a one day and one week sliding average
> 
> rrdtool graph -l 50 -r -h 400 -w 800 ipv6.png \
> 	-s end-3w \
> 	DEF:hosts=/root/ipv6hosts.rrd:hostcount:AVERAGE \
> 	CDEF:hosts1d=hosts,86400,TREND \
> 	CDEF:hosts1w=hosts,604800,TREND \
> 	LINE2:hosts#0000ff:Hosts \
> 	LINE1:hosts1w#ff0000 \
> 	LINE1:hosts1d#00ff00
> 
> As you can see in the resulting graphs for the 1-week, 2-week and 3-week
> graphs at
> 
> http://svr02.teleport-iabg.de/~bschmidt/ipv6-1w.png
> http://svr02.teleport-iabg.de/~bschmidt/ipv6-2w.png
> http://svr02.teleport-iabg.de/~bschmidt/ipv6-3w.png
> 
> the sliding window for one week (red line) is not available in the first
> week of the graph, even though there is older data in the RRD file. Same
> for the daily trend which is not available in the first 24h of the
> graph. Is this expected or a bug? TRENDNAN in more recent rrdtool
> versions doesn't help. This is rrdtool 1.3.1.

Hi Bernhard,

I've had the same problem and the solution for it isn't obvious, but pretty easy:

By default, rrdgraph fetches data from the DB from start to end, however, if you
want a trend with an average of 1 week, of course the first average point will be
available AFTER 1 week since the data has been fetched already and there is no
access to the data of start-1w ...

Solution:
You need to fetch data from the DB *BEFORE* your viewing time window.

In your above example, this should do the job:

change

> DEF:hosts=/root/ipv6hosts.rrd:hostcount:AVERAGE \

into

> DEF:hosts=/root/ipv6hosts.rrd:hostcount:AVERAGE:start=end-4w \

you may even need to prefetch a little more than 1w, so perhaps you need to

> DEF:hosts=/root/ipv6hosts.rrd:hostcount:AVERAGE:start=end-8d \

correction: of course I meant (-3w -8d), so 29d or even 30d

try:

> DEF:hosts=/root/ipv6hosts.rrd:hostcount:AVERAGE:start=end-30d \


Hope that helps ...

- Karl








More information about the rrd-users mailing list