[rrd-developers] Re: add/remove DS
Pascal Gloor
pascal.gloor at spale.com
Wed May 10 02:46:36 MEST 2006
Hi Tobias,
I have decided to build a separate tool, later on, once in a good
working state, we can look if we (you) want to integrate it into
rrdtool. I'm trying to keep it as near as possible of the rrdtool
(1.2 branch) code and I rely on rrd.h and rrd_format.h. Except the
two files named above, I wrote the rest myself.
I will just do a short presentation of the tool, its name is
rrd_manip aka manipulate RRD files.
usage: rrd_manip [-i format] [-I file] [-o format] [-O file] <tool>
[tool options]
-I/O optional input/output files. (defaults to stdin/stdout)
-i/o optional input/output format. Can be rrd,xml or text (defaults
to rrd)
<tool> list:
- convert, basicly does nothing, read the file in input format
(update the RRD Version to RRD_VERSION) and write it to the output
format.
- drop_ds <DSname> [DSname] ... removes DSname(s) from the input
file and write to output.
- drop_rra <RRAid> [RRAid] ... same as drop_ds but for RRAs.
- add_ds <DSname> <type> <heartbeat> <min> <max>, merge a new DS
with the input file and write to the output file.
- add_rra <cf> <pdp> <xff>, same as add_ds for for RRAs.
So far I have the two drop functions working.
Oh, I almost forgot. All those features are in a lib and are thread
safe and C89 ;)
In short, you load the file in a supported format, apply 'things' on
it, and write it to a supported format.
I will probably change the syntax to allow multiple actions at once:
cat some.rrd | ./rrd_manip drop_ds dsone,dstwo drop_rra 0,4 add_ds
newds,COUNTER,600,0,1000 > somenew.rrd
Some examples:
cat manyDS.rrd | ./rrd_manip drop_ds error_in error_out packets_in
packets_out > fewDS.rrd
There is user (user of the lib) selectable verbosity, useful for
debugging.
./rrd_manip -I IdontExist.rrd -o text convert
ERROR: main.c:184 -> rrd_manip.c:187 [failed to open file]
main.c:184 is where I call the lib function and rrd_manip.c:187 is
where the error occured in the lib.
You can also disable this to get a very simple and short error message.
I'm not yet finished, that's why I wont go too far in lib
documentation/explanation and so, I just wanted to show globally the
features ideas.
PS: Tobias, can you explain me how your FLOAT_COOKIE is working? I
did not find anything changing it from one platform to another and as
far as I understood, its fixed in the code. huh? I dont get it.. help ;)
Cheers,
Pascal
--
Unsubscribe mailto:rrd-developers-request at list.ee.ethz.ch?subject=unsubscribe
Help mailto:rrd-developers-request at list.ee.ethz.ch?subject=help
Archive http://lists.ee.ethz.ch/rrd-developers
WebAdmin http://lists.ee.ethz.ch/lsg2.cgi
More information about the rrd-developers
mailing list