]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - config/qos/migrate.pl
Merge branch 'master' of git://git.ipfire.org/ipfire-2.x
[people/pmueller/ipfire-2.x.git] / config / qos / migrate.pl
1 #!/usr/bin/perl
2
3 my $rrddir = "/var/log/rrd";
4 my @files = `cd $rrddir && ls class_* `;
5
6 if ( -e "$rrddir/migrated" ){print "Already migrated rrd files -> exit.\n";exit 1;}
7
8 system("/etc/init.d/collectd stop");
9 system("/usr/local/bin/qosctrl stop");
10
11 foreach (@files){
12 chomp($_);
13 my @lines = `rrdtool dump $rrddir/$_`;
14
15 my $fromhere = 0;
16 my @newlines = "<!-- Round Robin Database Dump --><rrd> <version> 0003 </version>
17 <step> 10 </step> <!-- Seconds -->
18 <lastupdate> </lastupdate>
19
20 <ds>
21 <name> bytes </name>
22 <type> COUNTER </type>
23 <minimal_heartbeat> 20 </minimal_heartbeat>
24 <min> 0.0000000000e+00 </min>
25 <max> NaN </max>
26
27 <!-- PDP Status -->
28 <last_ds> </last_ds>
29 <value> </value>
30 <unknown_sec> 0 </unknown_sec>
31 </ds>
32
33 <!-- Round Robin Archives --> <rra>
34 <cf> AVERAGE </cf>
35 <pdp_per_row> 1 </pdp_per_row> <!-- 10 seconds -->
36
37 <params>
38 <xff> 5.0000000000e-01 </xff>
39 </params>
40 <cdp_prep>
41 <ds>
42 <primary_value> </primary_value>
43 <secondary_value> NaN </secondary_value>
44 <value> NaN </value>
45 <unknown_datapoints> 0 </unknown_datapoints>
46 </ds>
47 </cdp_prep>
48 <database>
49 ";
50 foreach (@lines){
51 if ( $_ =~ /\<database\>/ ){
52 $fromhere = 1;next;
53 }
54 if ( $_ =~ /\<\/database\>/ ){
55 $fromhere = 0;next;
56 }
57 if ( $fromhere eq "0" ){
58 next;
59 }else{
60 my @t = split(/<v>/,$_);
61 push(@newlines,$t[0]."<v>".$t[1]."</row>\n");
62 }
63 }
64 push(@newlines," </database>
65 </rra>
66 </rrd>");
67 open(DATEI, ">/tmp/rrd.xml") || die "Unable to create temp file";
68 print DATEI @newlines;
69 close(DATEI);
70
71 system("rm -f $rrddir/$_");
72 system("rrdtool restore -f /tmp/rrd.xml $rrddir/$_");
73 print "$_ ... resized\n";
74 }
75
76 system("/etc/init.d/collectd start");
77 system("/usr/local/bin/qosctrl start");
78 system("touch $rrddir/migrated");
79 exit 0;