diff --git a/lib/fs.pm b/lib/fs.pm index aec7fb9..6e475cd 100644 --- a/lib/fs.pm +++ b/lib/fs.pm @@ -43,7 +43,7 @@ sub upgrade_to_350 { my $end_tim = 0; my $str = ""; - logger("$myself: Adding new 'ino' plus 1 extra DS to '$rrd'."); + logger("$myself: Adding new 'ino' plus 4 extra DS to '$rrd'."); logger("$myself: $!") if !(open(IN, "rrdtool dump $rrd |")); logger("$myself: $!") if !(open(OUT, "| rrdtool restore - $rrd.new")); @@ -76,7 +76,55 @@ sub upgrade_to_350 { 0 EOF - $str =~ s/ino/val/; + $str =~ s/ino/va1/; + print OUT "\n"; + print OUT < + $str + GAUGE + 120 + 0.0000000000e+00 + NaN + + + UNKN + 0.0000000000e+00 + 0 + +EOF + $str =~ s/va1/va2/; + print OUT "\n"; + print OUT < + $str + GAUGE + 120 + 0.0000000000e+00 + NaN + + + UNKN + 0.0000000000e+00 + 0 + +EOF + $str =~ s/va2/va3/; + print OUT "\n"; + print OUT < + $str + GAUGE + 120 + 0.0000000000e+00 + NaN + + + UNKN + 0.0000000000e+00 + 0 + +EOF + $str =~ s/va3/va4/; print OUT "\n"; print OUT < @@ -114,6 +162,24 @@ EOF NaN 0 + + 0.0000000000e+00 + NaN + NaN + 0 + + + 0.0000000000e+00 + NaN + NaN + 0 + + + 0.0000000000e+00 + NaN + NaN + 0 + EOF $cdp++; next; @@ -125,7 +191,7 @@ EOF if(/<\/row>/) { my $str = $_; my $n = 0; - $str =~ s/( <\/v>)/++$n % 3 == 0 ? " $1 NaN <\/v> NaN <\/v>" : $1/eg; + $str =~ s/( <\/v>)/++$n % 3 == 0 ? " $1 NaN <\/v> NaN <\/v> NaN <\/v> NaN <\/v> NaN <\/v>" : $1/eg; print OUT $str; next; } @@ -175,7 +241,7 @@ sub fs_init { } } - # convert from 3.4.0- to 3.5.0 (add fs_ino DS) + # convert from 3.4.0- to 3.5.0 (add fs_ino plus 4 extra DS) upgrade_to_350($rrd) if scalar(@ds) == 24; # recalculate the number of DS undef(@ds); @@ -188,8 +254,8 @@ sub fs_init { } } - if(scalar(@ds) / 40 != keys(%{$fs->{list}})) { - logger("$myself: Detected size mismatch between ... (" . keys(%{$fs->{list}}) . ") and $rrd (" . scalar(@ds) / 40 . "). Resizing it accordingly. All historical data will be lost. Backup file created."); + if(scalar(@ds) / 64 != keys(%{$fs->{list}})) { + logger("$myself: Detected size mismatch between ... (" . keys(%{$fs->{list}}) . ") and $rrd (" . scalar(@ds) / 64 . "). Resizing it accordingly. All historical data will be lost. Backup file created."); rename($rrd, "$rrd.bak"); } if(scalar(@rra) < 12 + (4 * $config->{max_historic_years})) { @@ -211,42 +277,66 @@ sub fs_init { push(@tmp, "DS:fs" . $n . "_ioa0:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim0:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino0:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val0:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va10:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va20:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va30:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va40:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use1:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa1:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim1:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino1:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val1:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va11:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va21:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va31:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va41:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use2:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa2:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim2:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino2:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val2:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va12:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va22:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va32:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va42:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use3:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa3:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim3:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino3:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val3:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va13:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va23:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va33:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va43:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use4:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa4:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim4:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino4:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val4:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va14:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va24:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va34:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va44:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use5:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa5:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim5:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino5:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val5:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va15:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va25:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va35:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va45:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use6:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa6:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim6:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino6:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val6:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va16:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va26:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va36:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va46:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_use7:GAUGE:120:0:100"); push(@tmp, "DS:fs" . $n . "_ioa7:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_tim7:GAUGE:120:0:U"); push(@tmp, "DS:fs" . $n . "_ino7:GAUGE:120:0:100"); - push(@tmp, "DS:fs" . $n . "_val7:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va17:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va27:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va37:GAUGE:120:0:U"); + push(@tmp, "DS:fs" . $n . "_va47:GAUGE:120:0:U"); } eval { RRDs::create($rrd, @@ -675,7 +765,7 @@ sub fs_update { $tim /= 60; $config->{fs_hist}->{$str} = $val; - $rrdata .= ":$use:$ioa:$tim:$ino:0"; + $rrdata .= ":$use:$ioa:$tim:$ino:0:0:0:0"; } $e++; }