X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=contrib%2Fmigrate-3-4.px;h=ed19a7b61535265f11c6423fd1154d867735bd7c;hp=613561b95fa18a828142374ff7d553a8e9619ff2;hb=2bc8f11d9c7182e24fb62a6efefa3e0b74ac0afb;hpb=5cfc908c892b9703b3c34db20a861f5c7b64a7d7 diff --git a/contrib/migrate-3-4.px b/contrib/migrate-3-4.px index 613561b9..ed19a7b6 100755 --- a/contrib/migrate-3-4.px +++ b/contrib/migrate-3-4.px @@ -95,6 +95,7 @@ our %Subdirs = our %TypeTranslate = ( cpu => sub { $_ = shift; $_->{'plugin_instance'} = $_->{'type_instance'}; $_->{'type_instance'} = undef; $_; }, + hddtemp => sub { $_ = shift; $_->{'plugin'} = 'hddtemp'; $_->{'type'} = 'temperature'; $_->{'type_instance'} = $_->{'type_instance'}; $_; }, if_errors => sub { $_ = shift; $_->{'type_instance'} = $_->{'plugin_instance'}; $_->{'plugin_instance'} = undef; $_; }, if_packets => sub { $_ = shift; $_->{'type_instance'} = $_->{'plugin_instance'}; $_->{'plugin_instance'} = undef; $_; }, nfs2_procedures => sub { $_ = shift; @$_{qw(plugin plugin_instance type type_instance)} = ('nfs', 'v2' . $_->{'type_instance'}, 'nfs_procedure', undef); $_; }, @@ -120,12 +121,13 @@ our %TypeSplit = our %TypeRename = ( - traffic => { from => [qw(incoming outgoing)], to => [qw(rx tx)] } + traffic => { from => [qw(incoming outgoing)], to => [qw(rx tx)] }, + vs_processes => { from => [qw(total)], to => [qw(value)] }, ); GetOptions ("indir|i=s" => \$InDir, "outdir|o=s" => \$OutDir, - "hostname=s" => \$Hostname) or exit (1); + "hostname=s" => \$Hostname) or exit_usage (); die "No such directory: $InDir" if (!-d $InDir); @@ -165,25 +167,26 @@ for (@Files) my $src_ds = $src_dses->[$i]; $dest->{'type_instance'} = $type_instances->[$i]; $dest_filename = get_filename ($dest); - print "./extractDS.px -i '$InDir/$orig_filename' -s '$src_ds' -o '$OutDir/$dest_filename' -d '$dst_ds'\n"; + print "./rrd_filter.px -i '$InDir/$orig_filename' -m '${src_ds}:${dst_ds}' -o '$OutDir/$dest_filename'\n"; } } - elsif (exists ($TypeRename{$orig->{'type'}})) + else + { + print "cp '$InDir/$orig_filename' '$OutDir/$dest_filename'\n"; + } + + if (exists ($TypeRename{$orig->{'type'}})) { my $src_dses = $TypeRename{$orig->{'type'}}->{'from'}; my $dst_dses = $TypeRename{$orig->{'type'}}->{'to'}; - my @sed_prog = (); + print "rrdtool tune '$OutDir/$dest_filename'"; for (my $i = 0; $i < @$src_dses; $i++) { - push (@sed_prog, 's/^' . $src_dses->[$i] . '$/' . $dst_dses->[$i] . '/g;'); + print " --data-source-rename " + . $src_dses->[$i] . ':' . $dst_dses->[$i]; } - - print "rrdtool dump '$InDir/$orig_filename' | sed -e '" . join (' ', @sed_prog) . "' | rrdtool restore - '$OutDir/$dest_filename'\n"; - } - else - { - print "cp '$InDir/$orig_filename' '$OutDir/$dest_filename'\n"; + print "\n"; } } @@ -341,6 +344,7 @@ sub special_disk my $orig = shift; my $dest_filename = shift; my $dest = shift; + my $dest_directory; $dest->{'type_instance'} = undef; $dest->{'plugin_instance'} = _special_disk_instance ($orig->{'type_instance'}); @@ -351,17 +355,33 @@ sub special_disk $dest->{'type'} = 'disk_merged'; $dest_filename = get_filename ($dest); - print "./extractDS.px -i '$InDir/$orig_filename' -s 'rmerged' -s 'wmerged' -o '$OutDir/$dest_filename' -d 'read' -d 'write'\n"; + + $dest_directory = dirname ($dest_filename); + if (!exists ($OutDirs{$dest_directory})) + { + print "[ -d '$OutDir/$dest_directory' ] || mkdir -p '$OutDir/$dest_directory'\n"; + $OutDirs{$dest_directory} = 1; + } + + print "./rrd_filter.px -i '$InDir/$orig_filename' -m 'rmerged:read' -m 'wmerged:write' -o '$OutDir/$dest_filename'\n"; $dest->{'type'} = 'disk_octets'; $dest_filename = get_filename ($dest); - print "./extractDS.px -i '$InDir/$orig_filename' -s 'rbytes' -s 'wbytes' -o '$OutDir/$dest_filename' -d 'read' -d 'write'\n"; + print "./rrd_filter.px -i '$InDir/$orig_filename' -m 'rbytes:read' -m 'wbytes:write' -o '$OutDir/$dest_filename'\n"; $dest->{'type'} = 'disk_ops'; $dest_filename = get_filename ($dest); - print "./extractDS.px -i '$InDir/$orig_filename' -s 'rcount' -s 'wcount' -o '$OutDir/$dest_filename' -d 'read' -d 'write'\n"; + print "./rrd_filter.px -i '$InDir/$orig_filename' -m 'rcount:read' -m 'wcount:write' -o '$OutDir/$dest_filename'\n"; $dest->{'type'} = 'disk_time'; $dest_filename = get_filename ($dest); - print "./extractDS.px -i '$InDir/$orig_filename' -s 'rtime' -s 'wtime' -o '$OutDir/$dest_filename' -d 'read' -d 'write'\n"; + print "./rrd_filter.px -i '$InDir/$orig_filename' -m 'rtime:read' -m 'wtime:write' -o '$OutDir/$dest_filename'\n"; +} + +sub exit_usage +{ + print <