Ändra struktur (rra) på en befintlig rrd-fil med data i.

RRDTool är en Linuxmjukvara som kan användas för att lagra data i Round-Robin Databaser för att sedan generera grafer utifrån den lagrade datan.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Ändra struktur (rra) på en befintlig rrd-fil med data i.

Inlägg 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. :roll: Jag kan ju inte ha varit första att stöta på ett sånt här problem?
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.

Inlägg 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.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.

Inlägg 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 :roll: och skall försöka städa upp lite, tanken är att för enkla också. :D
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.

Inlägg 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?! :roll:
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.

Inlägg 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...
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Ändra struktur (rra) på en befintlig rrd-fil med data i.

Inlägg 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.
Skriv svar