[rrd-developers] Update ex post?
sh at tokkee.org
Thu Aug 26 11:30:42 CEST 2010
On Tue, Aug 24, 2010 at 08:32:37AM -0700, Thorsten von Eicken wrote:
> > So, what's the approach those tools are using (I've never looked at any
> > of those [nor have I looked *for* any ;-)])?
> Something I wrote quite a while ago is a resampling tool, that would
> construct a new RRD using data from an old one, and for each CDP looks
> into the old one to get the best data match, and interpolate or combine
> values. I used this heavily in a former life to change existing RRDs
> full of data when we changed the amount of data we stored in each RRD. I
> haven't maintained this and it's rrdtool 1.2 vintage, ca. 2005.
> What I'm looking for now is the ability to splice RRDs together. The use
> case is replacing a server, for example, we replace www1 by www1-new
> and, after the fact, I'd like to splice the graphs together at the time
> we cut over service.
To me, that sounds like you're looking for some kind of set operations
to be applied to existing RRDs to form new RRDs. That's not what I had
in mind so far, but might also be a nice addition.
The latter case (splicing) sounds fairly easy to implement. I suppose,
in that case, the RRD file definitions of the "source" files are
identical, so it should boil down to basically copying the right parts
of the old files and append them to each other to form the new file(s).
Your other use case does not seem to allow that, though, but would
require some kind of interpolation. Is that right? However, still, I
guess the first case could simply be a special case of the latter, if
the latter is done right[TM].
The first approach that comes to my mind (for a general framework for
this kind of stuff) is to go for the good ol' UNIX tradition of creating
several tools, communicating through pipelines. There would be one tool
to somehow dump an RRD to some text representation (like rrddump ;-)),
another tool to restore that data into an RRD (rrdrestore ;-)) and
several tools using one or possibly more input streams (not sure yet how
to accomplish that yet; guess that won't be possible without using FIFOs
or shared memory)), doing some kind of operation on those streams and
creating a new stream.
What do you think about that? It might be a bit of overkill to begin
with, but once the general framework is available, adding new
"operators" to it should be rather simple.
Just some crazy ideas by someone not having much spare time to spend on
that anyway :-(
Sebastian "tokkee" Harl +++ GnuPG-ID: 0x8501C7FC +++ http://tokkee.org/
Those who would give up Essential Liberty to purchase a little Temporary
Safety, deserve neither Liberty nor Safety. -- Benjamin Franklin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 197 bytes
Desc: Digital signature
Url : http://lists.oetiker.ch/pipermail/rrd-developers/attachments/20100826/ca076ae9/attachment.pgp
More information about the rrd-developers