Sida 1 av 1
Ändra struktur (rra) på en befintlig rrd-fil med data i.
Postat: 26 maj 2011, 13:46
av CirruZZ
Jag skulle vilja ändra en rrd-fil, dvs göra om RRA i den, men det går ju inte på en befintlig fil. Så jag får skapa den nya filen med den nya strukturen, och sen flyta över datan från den gamla filen. Det blir en engångs process.
Tanken jag har är att man får loopa över den gamla filen från önskad start tidpunkt, till önskat slut, med önskad steep och sen helt enkelt läsa ut värdet från den gamla filen en tidpunkt i taget, och stoppa in i den nya.
Men frågan är om någon har något såtant script redan liggandes.

Jag kan ju inte ha varit första att stöta på ett sånt här problem?
Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.
Postat: 26 maj 2011, 16:14
av elf98
Jag har skrivit ett antal sådan skript genom åren.
JAg tror att det här skriptet fungerar:
Kod: Markera allt
#!/usr/bin/php
<?php
$file1 = "/tmp/tmp3.xml";
$handler = fopen("$file1", "r");
$line = fgets($handler);
$line = fgets($handler);
$tidold = 0;
while ( 1 > 0 ) {
echo $line;
if (strstr($line, "row>") != "0") {
echo "hit";
$line = str_replace(" ", "", $line);
$line = str_replace("<v>", " ", $line);
$line = strip_tags(rtrim($line));
list($tid,$temp) = split(" ", $line);
while ($tidold < $tid) {
if ($temp == "NaN") {
$tidold = $tid;
}
if ($tidold == 0) $tidold = $tid;
passthru("/usr/bin/rrdtool update /special/termo/rrdb/temperatur_linkoping.rrd $tidold:$temp");
$tidold = $tidold +120;
}
} elseif (strstr($line, "/xport") != "0") {
break;
}
echo "$tid\n";
$line = fgets($handler);
}
echo "done";
Jag har inte någon koll på när skriptet är skrivet eller om det fungerar rakt av.
Det ser ut som att skriptet för varje inläst rad loopar den nya databasen med 2 minuters intervall. Skulle man uppdatera i samma takt som man läser in skulle man försöka uppdatera en gång per timme, vilket med största sannolikhet skulle bli en uppdatering som är större än heartbeat - och inget skulle sparas.
Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.
Postat: 26 maj 2011, 21:43
av CirruZZ
Aaaa Tack! Ska kolla på det! Utan att ha kollat så mycket...men den jobbar från en xml dump på den gamla filen...rätt?
Jag har massa olika upplägg på mina nuvarande rrd-filer

och skall försöka städa upp lite, tanken är att för enkla också.

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.
Postat: 26 maj 2011, 23:16
av CirruZZ
har kollat på scriptet lite nu...antar att det är rrdtool xport som skall användas för att gennerera xml filen. Men jag blir inte riktigt klok på rrdtool xport. Det verkar som att den väljer den "längsta" intervallet, alltså den rra med "sämst" upplösning, för den period man vill exportera. Det gör att om jag då kör rrdtool xport på en hel rrdfil, så får jag bara den sämsta upplösningen över hela filen. Annars så måste jag själv kolla ut när vilken rra går in och täcker med bättre upplösning och sen klippa ihop xml filen själv för att på så sätt dra nytta av bästa upplösning. Det här har inget med ditt script att göra utan enbart med hur jag på bästa sätt skall få fram informationen för att mata scriptet.
Tips?!

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.
Postat: 27 maj 2011, 10:26
av elf98
JAg brukar köra dump.
Att man får en lägre upplösning under X dagar är något man får leva med...
Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.
Postat: 27 maj 2011, 10:31
av CirruZZ
Skillnaden mellan dump och xport är ju att i xport så får du en serie med data bara, i dump så får du alla värden i samtliga rra's.
Ang xport, om man väljer en kort period i närtid så kommer den att generera med bättre upplösning i och med att det finns, men det väljer samma upplösning för hela serien den genererar.