I have few 100s of rrds and i want to add 5 extra datasource to all of those rrds.
- Is it advisable to do so
- Whats the best way and the fastest way to do it
-- Soln --
David OBrien replied in the mailing list
after searching the archives ( which you should have done first ) and googling I found several people using this...
with perl. Install RRD:Simple
#!/usr/local/bin/perl
use strict;
use RRD::Simple ();
my $rrd = RRD::Simple->new();
my $rrdfile=$ARGV[0];
my $source=$ARGV[1];
my $type=$ARGV[2];
chomp($type);
$rrd->add_source($rrdfile, $source => $type);
usage:
./addSource.pl file.rrd ds GAUGE
or whatever the type is..
Enjoy.
use rrddump and rrdrestore.
just so:
rrdtool dump my.rrd > file.xml
./rrdAddDS.pl file.xml newDsName > new_file.xml
rrdtool restore new_file.xml my_new.rrd
you can refer from here:
http://osdir.com/ml/db.rrdtool.user/2003-08/msg00115.html
and here:
http://www.docum.org/drupal/sites/default/files/add_ds_to_rrd.pl_.txt
If you're using PNP4Nagios (https://docs.pnp4nagios.org/pnp-0.6/start), they provide a utility script rrd_modify.pl for modifying existing RRD data files.
$ rrd_modify.pl -h
=== rrd_modify.pl 0.01 ===
Copyright (c) 2012 PNP4Nagios Developer Team (http://www.pnp4nagios.org)
This script can be used to alter the number of data sources of an RRD file.
Usage:
rrd_modify.pl RRD_file insert|delete start_ds[,no_of_cols] [type]
Arguments:
RRD_file
the location of the RRD file. It will NOT be overwritten but appended
by ".chg"
insert or delete
the operation to be executed
start_ds
the position at which the operation starts (1..no of data sources+1)
no_of_cols
(an optional) number of columns which will be added/deleted
type
the data type (one of GAUGE, COUNTER)
Defaults to GAUGE if not specified for insert operations
(DERIVE, ABSOLUTE, COMPUTE have not been tested and might result in
errors during creation of a new RRD file)
Since version 1.5 rrdtool create
can "pre-fill" the data from existing file(s) with the --source
option. This feature solves the problem without the need of additional scripts.