Sida 1 av 1

Hur genererar temperatur.nu sina grafer?

Postat: 31 okt 2006, 21:15
av joakimr
Hur gör temperatur.nu för att skapa diagrammen?

Re: Hur genererar temperatur.nu sina grafer?

Postat: 31 okt 2006, 22:48
av elf98
joakimr skrev:Hur gör temperatur.nu för att skapa diagrammen?
Jag använder mig av RRDtool och dess Graffunktion.

Re: Hur genererar temperatur.nu sina grafer?

Postat: 31 okt 2006, 22:57
av joakimr
elf98 skrev:
joakimr skrev:Hur gör temperatur.nu för att skapa diagrammen?
Jag använder mig av RRDtool och dess Graffunktion.
Ok. Skapar du graferna "on the fly?
Hämtar du datat från en SQL-databas?

Re: Hur genererar temperatur.nu sina grafer?

Postat: 31 okt 2006, 23:06
av elf98
joakimr skrev: Ok. Skapar du graferna "on the fly?
Hämtar du datat från en SQL-databas?
Alla grafer skapas "on the fly" om det inte finns en cachad graf. Graf-cachen är giltig i 5minuter. Detta är en lösning som verkar fungera mycket bra faktiskt, fram tills temperatur.nu hade ca 40 städer skapades alla grafer automatiskt var femte minut. I nuläget skulle det innebära att knappt 1000 grafer i minuten skulle skapas, vilket nuvarande hårdvara troligtvis inte klarar.

Alla temperaturer sparas i RRD-databasen. Fördelen är att det går snabbt och mycket enkelt att skapa graferna. Då databasen är av Round-Robin typ är databasstorleken konstant och datagallring sker automatiskt. Samma sak skulle gå att göra med tex Mysql, men varför uppfinna hjulet två gånger? ;)

Re: Hur genererar temperatur.nu sina grafer?

Postat: 04 feb 2011, 21:46
av elf98
Och så här kan en grafgenerering se ut:

Kod: Markera allt

/opt/rrdtool-1.4.5/bin/rrdtool graph '/home/httpd/termo/graph/linkoping-1day-786-411-1-0-0-1_5-8.png'  --imgformat PNG --start -1day --end now  -n TITLE:11: -n AXIS:8: -n UNIT:6: -n WATERMARK:6: -n LEGEND:8: --width 786 -L 5 --height 411 -R light -D -u 5.1 -l -5.1 -E -t 'Linköping/Centrum idag' --right-axis 1:0 --right-axis-format %2.1lf DEF:ute=/special/termo/rrdb/temperatur_linkoping.rrd:ute:AVERAGE DEF:min=/special/termo/rrdb/temperatur_linkoping.rrd:ute:MIN DEF:max=/special/termo/rrdb/temperatur_linkoping.rrd:ute:MAX  HRULE:0#0000FF LINE1.5:ute#FF0000 COMMENT:" Min      Max      Medel    Senast\c" GPRINT:min:MIN:"%5.1lf°C" GPRINT:max:MAX:"%5.1lf°C" GPRINT:ute:AVERAGE:"%5.1lf°C" GPRINT:ute:LAST:"%5.1lf°C\c"  COMMENT:"Senaste data\: 20\:41 2011-02-04\c"