[rrd-users] "concatenating" RRDs at graphing time?

William Shallum william at shallum.net
Fri Jul 2 15:31:28 CEST 2010


Hi,

I'm trying to virtually "concatenate" two RRDs together at graphing time. Let's say there are 3 points in time a, b, and c where a < b < c. I want to use the data in a.rrd between a and b, and the data in b.rrd between b and c.

"rrd graph" is called with the --start option set to a, and the --end option set to c. The defs are as follows:

    DEF:data_a=a.rrd:data:AVERAGE:start=$a:end=$b

    DEF:data_b=b.rrd:data:AVERAGE:start=$b:end=$c

This works, I can graph data_a and data_b separately.

Now, to combine them into one value:

    CDEF:data=data_a,data_b,ADDNAN

Unfortunately, this does not work except when time = b (the only point where there is both data_a and data_b). 

What works is:

    DEF:data_a=a.rrd:data:AVERAGE:start=$a:end=$c

    DEF:data_b=b.rrd:data:AVERAGE:start=$a:end=$c

    CDEF:data=TIME,$b,LT,data_a,data_b,IF

What I want to know is, why can't the first CDEF (the one with ADDNAN) work? The solution with the IF would be longer if there are 3 or 4 RRDs to use.

-- william


More information about the rrd-users mailing list