rrd-databaser och max/min värden över tid

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!
Anders Sandell
Inlägg: 2
Blev medlem: 11 aug 2008, 16:23
Ort: Älta

rrd-databaser och max/min värden över tid

Inlägg 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
chol
Wannabe
Inlägg: 19
Blev medlem: 18 maj 2008, 21:33
Ort: Alingsås

Re: rrd-databaser och max/min värden över tid

Inlägg 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? :)
Anders Sandell
Inlägg: 2
Blev medlem: 11 aug 2008, 16:23
Ort: Älta

Re: rrd-databaser och max/min värden över tid

Inlägg 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!
gungus
Wannabe
Inlägg: 20
Blev medlem: 29 nov 2008, 18:02
Ort: Jönköping

Re: rrd-databaser och max/min värden över tid

Inlägg 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å? :roll:
/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
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: rrd-databaser och max/min värden över tid

Inlägg 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
gungus
Wannabe
Inlägg: 20
Blev medlem: 29 nov 2008, 18:02
Ort: Jönköping

Re: rrd-databaser och max/min värden över tid

Inlägg 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
Månad
Årsgraf utan toppar.
Årsgraf utan toppar.
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: rrd-databaser och max/min värden över tid

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

Driver temperatur.nu

Bild
gungus
Wannabe
Inlägg: 20
Blev medlem: 29 nov 2008, 18:02
Ort: Jönköping

Re: rrd-databaser och max/min värden över tid

Inlägg 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.
gungus
Wannabe
Inlägg: 20
Blev medlem: 29 nov 2008, 18:02
Ort: Jönköping

Re: rrd-databaser och max/min värden över tid

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