HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Hur gör man för att ... ? Hur fungerar ... ? Steg för steg-guider och förklarande artiklar finns i detta forum.
Många guider finner också på vår blogg: https://blog.m.nu/
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

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av CirruZZ »

Vad får du för info om du skriver...

Kod: Markera allt

rrdtool info outside_temp.rrd
Kanske kan vara så att du har definierat din rrd knasigt.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av elf98 »

inf vet jag inte vad det innebär...

Hur ofta uppdaterar du databasen?

Vad har du satt för heartbeat på databasen?
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: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av CirruZZ »

inf = infinity???
swedtap
Wannabe
Inlägg: 11
Blev medlem: 19 jan 2009, 13:51
Ort: Örebro

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av swedtap »

Jag har följt den här guiden från början och skrivit så här för att skapa databasen:

Kod: Markera allt

rrdtool create outside_temp.rrd \
       --step 150 \
       DS:outsidetemp:GAUGE:300:-50:60 \
       RRA:AVERAGE:0.5:1:5760 \
       RRA:AVERAGE:0.5:2:2016 \
       RRA:AVERAGE:0.5:4:52560 \
       RRA:AVERAGE:0.5:24:175200 \
       RRA:MAX:0.5:1:5760 \
       RRA:MAX:0.5:2:2016 \
       RRA:MAX:0.5:4:52560 \
       RRA:MAX:0.5:24:175200 \
       RRA:MIN:0.5:1:5760 \
       RRA:MIN:0.5:2:2016 \
       RRA:MIN:0.5:4:52560 \
       RRA:MIN:0.5:24:175200
När jag skriver rrdtool info outside_temp.rrd får jag detta:

Kod: Markera allt

filename = "outside_temp.rrd"
rrd_version = "0003"
step = 150
last_update = 1234295768
ds[outsidetemp].type = "GAUGE"
ds[outsidetemp].minimal_heartbeat = 300
ds[outsidetemp].min = -5.0000000000e+01
ds[outsidetemp].max = 6.0000000000e+01
ds[outsidetemp].last_ds = "-3.06"
ds[outsidetemp].value = -2.1087237852e+02
ds[outsidetemp].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 5760
rra[0].cur_row = 5289
rra[0].pdp_per_row = 1
rra[0].xff = 5.0000000000e-01
rra[0].cdp_prep[0].value = inf
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 2016
rra[1].cur_row = 567
rra[1].pdp_per_row = 2
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = inf
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[2].cf = "AVERAGE"
rra[2].rows = 52560
rra[2].cur_row = 33183
rra[2].pdp_per_row = 4
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = inf
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[3].cf = "AVERAGE"
rra[3].rows = 175200
rra[3].cur_row = 9912
rra[3].pdp_per_row = 24
rra[3].xff = 5.0000000000e-01
rra[3].cdp_prep[0].value = inf
rra[3].cdp_prep[0].unknown_datapoints = 0
rra[4].cf = "MAX"
rra[4].rows = 5760
rra[4].cur_row = 931
rra[4].pdp_per_row = 1
rra[4].xff = 5.0000000000e-01
rra[4].cdp_prep[0].value = inf
rra[4].cdp_prep[0].unknown_datapoints = 0
rra[5].cf = "MAX"
rra[5].rows = 2016
rra[5].cur_row = 836
rra[5].pdp_per_row = 2
rra[5].xff = 5.0000000000e-01
rra[5].cdp_prep[0].value = inf
rra[5].cdp_prep[0].unknown_datapoints = 0
rra[6].cf = "MAX"
rra[6].rows = 52560
rra[6].cur_row = 17322
rra[6].pdp_per_row = 4
rra[6].xff = 5.0000000000e-01
rra[6].cdp_prep[0].value = inf
rra[6].cdp_prep[0].unknown_datapoints = 0
rra[7].cf = "MAX"
rra[7].rows = 175200
rra[7].cur_row = 82555
rra[7].pdp_per_row = 24
rra[7].xff = 5.0000000000e-01
rra[7].cdp_prep[0].value = inf
rra[7].cdp_prep[0].unknown_datapoints = 0
rra[8].cf = "MIN"
rra[8].rows = 5760
rra[8].cur_row = 1633
rra[8].pdp_per_row = 1
rra[8].xff = 5.0000000000e-01
rra[8].cdp_prep[0].value = inf
rra[8].cdp_prep[0].unknown_datapoints = 0
rra[9].cf = "MIN"
rra[9].rows = 2016
rra[9].cur_row = 1856
rra[9].pdp_per_row = 2
rra[9].xff = 5.0000000000e-01
rra[9].cdp_prep[0].value = inf
rra[9].cdp_prep[0].unknown_datapoints = 0
rra[10].cf = "MIN"
rra[10].rows = 52560
rra[10].cur_row = 7268
rra[10].pdp_per_row = 4
rra[10].xff = 5.0000000000e-01
rra[10].cdp_prep[0].value = inf
rra[10].cdp_prep[0].unknown_datapoints = 0
rra[11].cf = "MIN"
rra[11].rows = 175200
rra[11].cur_row = 104020
rra[11].pdp_per_row = 24
rra[11].xff = 5.0000000000e-01
rra[11].cdp_prep[0].value = inf
rra[11].cdp_prep[0].unknown_datapoints = 0
På raden "ds[outsidetemp].last_ds = "-3.06"" verkar det ju vara sparat rätt temperatur så det är ju konstigt att inte det kommer upp när man gör fetch. Några tips?
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av elf98 »

Att använda ett step på 150 är dumt. Det är _mycket_ bättre att använda en jämn multipel av 60.

I övrig får nog någon som använder scripten i fråga komma med tips.

(Hur ofta uppdaterar du databasen?)
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: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av CirruZZ »

Varför är det bättre med en multipel av 60 på steppen? Om man ser till att uppdatera i samma intervall som steppen så ska väl det funka bra ändå? ...och att övriga serier stämmer överens med. Eller har jag missat något... :?

Så här ser min rrdtool info ut

Kod: Markera allt

filename = "outside_temp.rrd"
rrd_version = "0003"
step = 150
last_update = 1234345323
ds[outsidetemp].type = "GAUGE"
ds[outsidetemp].minimal_heartbeat = 300
ds[outsidetemp].min = -5,0000000000e+01
ds[outsidetemp].max = 6,0000000000e+01
ds[outsidetemp].last_ds = "0.26"
ds[outsidetemp].value = 3,1982310620e+01
ds[outsidetemp].unknown_sec = 0
rra[0].cf = "AVERAGE"
rra[0].rows = 5760
rra[0].cur_row = 3963
rra[0].pdp_per_row = 1
rra[0].xff = 5,0000000000e-01
rra[0].cdp_prep[0].value = NaN
rra[0].cdp_prep[0].unknown_datapoints = 0
rra[1].cf = "AVERAGE"
rra[1].rows = 2016
rra[1].cur_row = 253
rra[1].pdp_per_row = 2
rra[1].xff = 5,0000000000e-01
rra[1].cdp_prep[0].value = 0,0000000000e+00
rra[1].cdp_prep[0].unknown_datapoints = 0
rra[2].cf = "AVERAGE"
rra[2].rows = 52560
rra[2].cur_row = 8190
rra[2].pdp_per_row = 4
rra[2].xff = 5,0000000000e-01
rra[2].cdp_prep[0].value = 0,0000000000e+00
rra[2].cdp_prep[0].unknown_datapoints = 0
rra[3].cf = "AVERAGE"
rra[3].rows = 175200
rra[3].cur_row = 1364
rra[3].pdp_per_row = 24
rra[3].xff = 5,0000000000e-01
rra[3].cdp_prep[0].value = 2,7174819131e+00
rra[3].cdp_prep[0].unknown_datapoints = 0
rra[4].cf = "MAX"
rra[4].rows = 5760
rra[4].cur_row = 3963
rra[4].pdp_per_row = 1
rra[4].xff = 5,0000000000e-01
rra[4].cdp_prep[0].value = NaN
rra[4].cdp_prep[0].unknown_datapoints = 0
rra[5].cf = "MAX"
rra[5].rows = 2016
rra[5].cur_row = 253
rra[5].pdp_per_row = 2
rra[5].xff = 5,0000000000e-01
rra[5].cdp_prep[0].value = 2,4457214747e-01
rra[5].cdp_prep[0].unknown_datapoints = 0
rra[6].cf = "MAX"
rra[6].rows = 52560
rra[6].cur_row = 8190
rra[6].pdp_per_row = 4
rra[6].xff = 5,0000000000e-01
rra[6].cdp_prep[0].value = 2,4457214747e-01
rra[6].cdp_prep[0].unknown_datapoints = 0
rra[7].cf = "MAX"
rra[7].rows = 175200
rra[7].cur_row = 1364
rra[7].pdp_per_row = 24
rra[7].xff = 5,0000000000e-01
rra[7].cdp_prep[0].value = 2,4457214747e-01
rra[7].cdp_prep[0].unknown_datapoints = 0
rra[8].cf = "MIN"
rra[8].rows = 5760
rra[8].cur_row = 3963
rra[8].pdp_per_row = 1
rra[8].xff = 5,0000000000e-01
rra[8].cdp_prep[0].value = NaN
rra[8].cdp_prep[0].unknown_datapoints = 0
rra[9].cf = "MIN"
rra[9].rows = 2016
rra[9].cur_row = 253
rra[9].pdp_per_row = 2
rra[9].xff = 5,0000000000e-01
rra[9].cdp_prep[0].value = 2,4457214747e-01
rra[9].cdp_prep[0].unknown_datapoints = 0
rra[10].cf = "MIN"
rra[10].rows = 52560
rra[10].cur_row = 8190
rra[10].pdp_per_row = 4
rra[10].xff = 5,0000000000e-01
rra[10].cdp_prep[0].value = 2,4457214747e-01
rra[10].cdp_prep[0].unknown_datapoints = 0
rra[11].cf = "MIN"
rra[11].rows = 175200
rra[11].cur_row = 1364
rra[11].pdp_per_row = 24
rra[11].xff = 5,0000000000e-01
rra[11].cdp_prep[0].value = 1,3000000000e-01
rra[11].cdp_prep[0].unknown_datapoints = 0
Körs det enligt guiden så skall det uppdateras vara var 2,5 min
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av elf98 »

Kör du med jämna multiplar av 60 får du två fördelar:
1. Du kan mata databasen i rätt takt.
2. Du kan enklare få ut data med annan upplösning än den rrdtool tar som standard. (tex om du vill ha ut timmedel i stället för minutmedel i en kort serie.)

Kort och gott, step skall vara en jämn multipel av 60! ;D
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
swedtap
Wannabe
Inlägg: 11
Blev medlem: 19 jan 2009, 13:51
Ort: Örebro

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av swedtap »

Ok jag raderade filen och gjorde en ny och bytte step 150 till 300 istället.
Men fortfarande får jag bara en massa inf-värden när jag gör update på den. Har suttit och nog läst igenom hela hemsidan (http://oss.oetiker.ch/rrdtool/index.en.html) men hittar ingenting om varför man får inf.

Så nu hoppas jag att nån av er som är experter på sånt här kan komma med förslag.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av elf98 »

tredje gången: Hur ofta uppdaterar du databasen?
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
swedtap
Wannabe
Inlägg: 11
Blev medlem: 19 jan 2009, 13:51
Ort: Örebro

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av swedtap »

Uppdaterar den var femte minut.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av elf98 »

Och det har du gjort hela tiden?

Får inte din databas värden inom 5 minuter sätts värdet som okänt.

Det är inte bra att ligga precis på gränsen. Om man har ett step på 300 sekunder kan det vara en bra idé att köra ett heartbeat som är större.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
swedtap
Wannabe
Inlägg: 11
Blev medlem: 19 jan 2009, 13:51
Ort: Örebro

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av swedtap »

Ja det har varit fem minuter hela tiden.

Om man har step 300, måste den uppdateras exakt var femte minut då?
Tänkte om man kunde göra rrdupdate manuellt för att prova men det kanske inte går att göra så?
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av CirruZZ »

Nej inte exakt men den bör uppdateras i den takten. Sen är det heartbeat som bestämmer hur länge det får dra över innan serien får en lucka.

Från början hade jag ett fel i min guide men det är tillrättat tidigare. Guiden är skriven för att hämta data och spara var 2,5 min. elf98 tycker att det skall vara gen jämn multipel av 60 vilket det inte är i min guid. Dock kör jag själv var 2,5:e min och det funkar bra för mig. :) Ev får jag skriva om guiden enligt elf98's förslag.
swedtap skrev:Tänkte om man kunde göra rrdupdate manuellt för att prova men det kanske inte går att göra så?
Det är bara att testa på och se vad som händer!
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5420
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av elf98 »

Om du har ett heartbeat på 300 sekunder och matar data med ~300 sekunder är risken mycket stor att ingen data lagras!
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: HOWTO: RRDtool på Ubuntu (installera, logga, rita graf)

Inlägg av CirruZZ »

finns två lösningar då, uppdatera oftare med och ändra step enligt uppdaterings frekvensen, eller skapa ny/ändra rrd så att heartbeat är större än stepp. Något av step eller heartbeat måste ändras.
Skriv svar