[rrd-users] rrd create --start date; internal treatment

A Darren Dunham ddunham at taos.com
Tue Sep 29 22:42:14 CEST 2009

On Tue, Sep 29, 2009 at 02:52:24PM +0200, Filip Moritz wrote:

> With rrdtool create, --start sets a boundary for the earliest accepted
> values. I assumed this timestamp would be stored inside the rrd
> metadata, now it apears it isn't. Is this correct? Is there any way to
> recover start/creation time from an rrd file?

Yes.  The rrd database is always a fixed size, and you can never update
older values (only add later values).  So the database is created with
the last update time equal to the --start time. 

> Moreover: How is start time treated internally? It seems unknown
> values before start time get involved in aggregation: Time frames
> overlapping start time either become unknown or the unknown values
> padded leading to exaggerated values especially for time-series
> starting with high peaks (here: hits on online news articles).

> Talking workarounds: Is there an option to create rrds with pre-zeroed values?

Create a database with a start time before any time frame you may be
interested in.  Then input zeros up to the point you want.

> Does anyone know good resources or maybe some thread subjects on the
> use of rrd with very infrequent updates?

RRD mainly deals with *rates*, so it's comparing the difference between
consecutive updates.  If you don't give it enough data in your
timeframe, you won't get good data.

One way to fake it is to write a wrapper for your update process.  Have
a script that takes your (non-zero) update.  Then have it check the RRD
for the last update time.  Have it update the database explicitly with
zeros for the step times between the last update and your current
(non-zero) update.

Make sense?


More information about the rrd-users mailing list