Sida 1 av 1
rrd-databaser och max/min värden över tid
Postat: 11 aug 2008, 16:32
av Anders Sandell
hej,
Jag loggar sedan en tid ett antal temperaturer hemma (inne, ute, på vinden, i grunden mm.) till RRD-databaser.
När jag sedan gör grafer och skriver ut min/max värden varierar dessa olika beroende på hur lång tid som grafen visar. Om jag tex gör en graf över temperaturer den senaste månaden visas maxtemp som 32.0 gr C. Om jag sedan gör en graf över senaste året blir maxtemp 27.7 gr C. I min värd borde maxtemp visas som 32.0 gr C även på årsbasis.
Jag antar att detta har något att göra med sammanslagning av datapunkter och definition av AVERAGE när RRD-filen skapas, men HUR ska man definiera detta för att få full upplösning även över tid.
Jag håller nu på att sätta upp loggning av elförbrukning och vill gärna bevara informationen om "topparna" i oförvanskad form.
Tacksam för hjälp.
Hälsningar
Anders
Re: rrd-databaser och max/min värden över tid
Postat: 15 aug 2008, 23:37
av chol
Också nyfiken på detta. Har inte orkat läsa man-sidorna så djupt än utan hoppas på info från nån som gjort det?

Re: rrd-databaser och max/min värden över tid
Postat: 22 aug 2008, 21:19
av Anders Sandell
Efter lite rotande i dokumentationen kom jag fram till att man får använda MAX och MIN RRA'er för att spara extremvärdena, fortfarande försvinner lite i upplösning men de får man väga mot RRD-databasernas fördelar!
Re: rrd-databaser och max/min värden över tid
Postat: 16 okt 2009, 09:47
av gungus
Gammal tråd, men samma problem. Jag sparar 3min värden i 1 år. (och sammanslagna medel 10 år) Men när jag grafar år så uteblir extremvärden som syns i månad. Jag har inte kunnat läsa mej till vad som sker, men det verkar som om grafen inte kan rita alla punkter så gör den medelvärden vilket även påverkar max/min som jag skriver ut med
GPRINT:t:MAX:\"Max\\\: %0.1lf C\"",
Någon som kommit på vad det beror på?
/usr/bin/rrdtool create energi.rrd -s 180 DS:energi:COUNTER:1200:0:U
RRA:AVERAGE:0.5:1:175200 RRA:AVERAGE:0.5:20:87600
http://gungus.dyndns.org/tempserver/Energi.html
Re: rrd-databaser och max/min värden över tid
Postat: 16 okt 2009, 10:02
av CirruZZ
Du är inne på helt rätt spår, att över tid så blir det medel värdet som gäller, och det är max och min på
medelvärdet som du visar.
För att komma runt det så måste du skapa flera serier (RRA) se exemplet
Kod: Markera allt
rrdtool create $directory$filename \
--step 150 \
DS:value:GAUGE:300:U:U \
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
och sen använda rätt serie till rätt värde.
"DEF:temp=$RRDDataDir$_[0].rrd:$_[1]:AVERAGE",
"DEF:temp_max=$RRDDataDir$_[0].rrd:$_[1]:
MAX",
"DEF:temp_min=$RRDDataDir$_[0].rrd:$_[1]:
MIN",
"COMMENT:\t\t\t\tNu Medel Max Min\\n",
"LINE2:temp#$_[3]:$_[4]\t\t\t",
"GPRINT:temp:LAST:%6.1lf",
"GPRINT:temp:AVERAGE:%6.1lf",
"GPRINT:
temp_max:MAX:%6.1lf",
"GPRINT:
temp_min:MIN:%6.1lf\\n
obs, detta är bra klippt direkt från mina script, men du ser vad jag menar
Re: rrd-databaser och max/min värden över tid
Postat: 16 okt 2009, 11:12
av gungus
Jo. Ditt exempel har rådata (2.5min) i 10 dygn och då blir det aggregerat efter det enligt RRA. Min databas borde hålla rådata 1 år, men det verkar bli begränsningar i själva grafen och att det är värden för grafen som används för max/min, även om all data bör finns tillgänglig.

- Månad

- Årsgraf utan toppar.
Re: rrd-databaser och max/min värden över tid
Postat: 16 okt 2009, 12:54
av elf98
Grafen är helt korrekt.
Eftersom det som ritas i grafen är medelvärden över en viss tid är ditt max över denna tid 2,5kW.
Om du absolut vill ha maxvärden får du grafa MAX i stället för AVERAGE.
Jag skapar grafer med average men anger min/max som de momentana min/max som förekommit.
Det är helt enkelt en begränsning i hur databasen och grafgenereringen är uppbyggd!
Re: rrd-databaser och max/min värden över tid
Postat: 16 okt 2009, 13:54
av gungus
Tack. Då var det som jag misstänkte att grafen kan "dra ihop det". Dock lite förvånad att min/max i text under graf baseras på grafen och inte på indata.
Re: rrd-databaser och max/min värden över tid
Postat: 19 okt 2009, 21:41
av gungus
Jag fann lite svar efter djupdykning. Men bättre data än 1 pixel får man inte.
http://oss.oetiker.ch/rrdtool/doc/rrdgraph.en.html
By default, rrdtool graph calculates the width of one pixel in the time domain and tries to get data from an RRA with that resolution. With the step option you can alter this behaviour. If you want rrdtool graph to get data at a one-hour resolution from the RRD, set step to 3'600. Note: a step smaller than one pixel will silently be ignored.