X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=contrib%2Fmigrate-4-5.px;h=8e5a7ed44be9459cf69415e50f46664c483f8aa4;hb=0efda4fc47a35dd77171dfc8d4f383ec6f260ffb;hp=efb2e0a136e34f35ee50edd1cc1870e6905d42ab;hpb=74761a89659630c5f7d1d849ae7d28ae1605d9be;p=collectd.git diff --git a/contrib/migrate-4-5.px b/contrib/migrate-4-5.px index efb2e0a1..8e5a7ed4 100755 --- a/contrib/migrate-4-5.px +++ b/contrib/migrate-4-5.px @@ -32,8 +32,8 @@ use Data::Dumper (); use File::Basename ('dirname'); our $InDir = '/var/lib/collectd'; -our $OutDir = '/tmp/collectd-5'; -our $Hostname = 'localhost'; +our $RRDtool = 'rrdtool'; +our $RRDFilter = 'rrd_filter.px'; our %TypesCounterToDerive = # {{{ ( @@ -46,7 +46,6 @@ our %TypesCounterToDerive = # {{{ connections => ["value"], cpu => ["value"], current => ["value"], - df => ["used", "free"], disk_merged => ["read", "write"], disk_octets => ["read", "write"], disk_ops => ["read", "write"], @@ -105,8 +104,6 @@ our %TypesCounterToDerive = # {{{ protocol_counter => ["value"], ps_cputime => ["user", "syst"], ps_pagefaults => ["minflt", "majflt"], - ps_code => ["value"], - ps_data => ["value"], serial_octets => ["rx", "tx"], swap_io => ["value"], virt_cpu_total => ["ns"], @@ -167,7 +164,7 @@ sub handle_file # {{{ if ($TypesRenameDataSource{$type}) { my $old_ds = $TypesRenameDataSource{$type}; - print "rrdtool tune \"$path\" --data-source-rename ${old_ds}:value\n"; + print "$RRDtool tune \"$path\" --data-source-rename ${old_ds}:value\n"; } if ($TypesCounterToDerive{$type}) @@ -177,7 +174,7 @@ sub handle_file # {{{ for (@$ds_names) { my $name = $_; - print "rrdtool tune \"$path\" --data-source-type ${name}:DERIVE --minimum ${name}:0 --maximum ${name}:U\n"; + print "$RRDtool tune \"$path\" --data-source-type ${name}:DERIVE --minimum ${name}:0 --maximum ${name}:U\n"; } } @@ -185,7 +182,16 @@ sub handle_file # {{{ && (!$plugin_inst) && ($type_inst)) { my $dir = join ('/', @path); - print "mv \"$path\" \"$dir/$plugin-$type_inst/$type.rrd\"\n"; + print "mkdir -p \"$dir/$plugin-$type_inst\"\n"; + if (($plugin eq 'df') and ($type eq 'df')) + { + print "$RRDFilter --infile=\"$path\" --outfile=\"$dir/$plugin-$type_inst/df_complex-free.rrd\" --map free:value\n"; + print "$RRDFilter --infile=\"$path\" --outfile=\"$dir/$plugin-$type_inst/df_complex-used.rrd\" --map used:value\n"; + } + else + { + print "mv \"$path\" \"$dir/$plugin-$type_inst/$type.rrd\"\n"; + } } } # }}} sub handle_file @@ -217,6 +223,31 @@ sub scan_dir # {{{ closedir ($dh); } # }}} sub scan_dir +sub exit_usage # {{{ +{ + print STDERR < Source directory + Default: $InDir + --rrdtool Path to the RRDtool binary + Default: $RRDtool + --rrdfilter Path to the rrd_filter.px script + Default: $RRDFilter + +EOF + exit (1); +} # }}} sub exit_usage + +GetOptions ("indir|i=s" => \$InDir, + "rrdtool=s" => \$RRDtool, + "rrdfilter=s" => \$RRDFilter, + "help|h" => \&exit_usage) or exit_usage (); + +print "#!/bin/bash\n\n"; + scan_dir ($InDir); # vim: set sw=2 sts=2 et fdm=marker :