Portál AbcLinuxu, 26. dubna 2024 12:54


Dotaz: RRDTOOL hodnoty a graf

2.9.2009 20:58 radekkk
RRDTOOL hodnoty a graf
Přečteno: 1611×
Odpovědět | Admin

Zdravim,

poprosil bych vas o pomoc. K routru mam pripojena 2 teplotni cidla a pokousim se merit teplotu kterou ukladam rrdtoolem a nasledne vykresluju grafy denni tydeni mesicni rocni. Pokousel jsem se studovat rrdtool ale porad se v nem moc neorientuji. Problem mam nyni v tom ze minimalni a maximalni hodnoty napric grafama nekoresponduji napr. rocni ma daleko mensi maximalni teplotu i vykresleni nez mesicni ci tydeni graf. Prosim vidite nekde chybu?

#!/opt/bin/perl
my $rrd = '/opt/var/databaze/teplota';

&ProcessSensor(0, "router");
&ProcessSensor(1, "venku");
# kreslime grafy

&CreateGraph("", "hour", "Posledni hodina","SECOND:60:MINUTE:10:MINUTE:5:0:%H:%M","");
&CreateGraph("", "day", "Denni","MINUTE:30:HOUR:1:HOUR:1:0:%Hh","");
&CreateGraph("", "week", "Tydenni","HOUR:6:DAY:1:DAY:1:0:%A","");
&CreateGraph("", "month", "Mesicni","DAY:1:WEEK:1:WEEK:1:0:%d.%m.%Y","");
&CreateGraph("", "year", "Rocni","MONTH:1:MONTH:1:MONTH:1:0:%B","");

sub ProcessSensor
{
# process sensor
# inputs: $_[0]: cislo cidla (ie, 0/1/2/)
#         $_[1]: popis cidla

       my $temp = `/opt/bin/digitemp_DS9097 -t $_[0] -q -c /opt/etc/teplomer/digitemp.conf -o%C`;

               RRDs::create "$rrd/temp$_[0].rrd",
                       "-s 300",
                       "DS:temp:GAUGE:600:U:U",
                       "RRA:AVERAGE:0.5:1:2016",
                       "RRA:MIN:0.5:1:2016",
                       "RRA:MAX:0.5:1:2016",
                       "RRA:AVERAGE:0.5:6:1344",
                       "RRA:MIN:0.5:6:1344",
                       "RRA:MAX:0.5:6:1344",
                       "RRA:AVERAGE:0.5:24:2190",
                       "RRA:MIN:0.5:24:2190",
                       "RRA:MAX:0.5:24:2190",
                       "RRA:AVERAGE:0.5:144:3650",
                       "RRA:MIN:0.5:144:3650",
                       "RRA:MAX:0.5:144:3650";
       }
#}
sub CreateGraph
{
# creates graph
# inputs: $_[0]: cislo cidla (ie, 0/1/2/etc)
#         $_[1]: interval (ie, day, week, month, year)
#         $_[2]: popis cidla

        RRDs::graph "$img/temp-$_[1].png",
                "-s -1$_[1]",
                "-t Graf: $_[2]",
                "-x","$_[3]",
#               "--lazy",
                "-h", "333", "-w", "747",
                "-a", "PNG",
                "-v stupne Celsia",
                "--slope-mode",
                "DEF:temp0=$rrd/temp0.rrd:temp:AVERAGE",
                "DEF:temp1=$rrd/temp1.rrd:temp:AVERAGE",
                "DEF:min0=$rrd/temp0.rrd:temp:MIN",
                "DEF:max0=$rrd/temp0.rrd:temp:MAX",
                "COMMENT:  cidlo\\:             maximalni              minimalni              prumerna                 aktualni\\l",
                "LINE2:temp0#0000FF:venku\\:            ",
                "GPRINT:temp0:MAX:%2.1lf°C               ",
                "GPRINT:temp0:MIN:%2.1lf°C              ",
                "GPRINT:temp0:AVERAGE:%2.1lf°C                ",
                "GPRINT:temp0:LAST:%2.1lf°C\\l",
                "LINE2:temp1#008A00:vnitrni\\:          ",
                "GPRINT:temp1:MAX:%2.1lf°C               ",
                "GPRINT:temp1:MIN:%2.1lf°C              ",
                "GPRINT:temp1:AVERAGE:%2.1lf°C                ",
                "GPRINT:temp1:LAST:%2.1lf°C \\l",
                "COMMENT: \\r",
};

                                                                                    

Dekuji za kazdou radu

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

AraxoN avatar 2.9.2009 21:14 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf
Odpovědět | | Sbalit | Link | Blokovat | Admin

To je tým, že v grafe vykresľuješ len temp0 a temp1, čo máš zadefinované ako priemer. Keď sa vykresľuje obdobie, ktoré presahuje rozsah najpodrobnejšej databázy (RRA:AVERAGE:0.5:1:2016), použije sa najbližšia ďalšia databáza (RRA:AVERAGE:0.5:6:1344), kde sú jednotlivé hodnoty už priemerom zo 6 pôvodných hodnôt. Ak chceš minimum a maximum, tak vykresľuj aj tie min0 a max0, čo si si tam definoval - tie by mali obsahovať nie priemer za 6 hodnôt, ale minimum a maximum za 6 hodnôt.

2.9.2009 21:29 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

dekuji za radu myslis tedy takto?

"DEF:temp0=$rrd/temp0.rrd:temp:AVERAGE",
                "DEF:temp1=$rrd/temp1.rrd:temp:AVERAGE",
                "DEF:min0=$rrd/temp0.rrd:temp:MIN",
                "DEF:max0=$rrd/temp0.rrd:temp:MAX",

                   "DEF:min1=$rrd/temp1.rrd:temp:MIN",
                "DEF:max1=$rrd/temp1.rrd:temp:MAX",

                "COMMENT:  cidlo\\:             maximalni              minimalni              prumerna                 aktualni\\l",
                "LINE2:temp0#0000FF:venku\\:            ",
                "GPRINT:max0:MAX:%2.1lf°C               ",
                "GPRINT:min0:MIN:%2.1lf°C              ",
                "GPRINT:temp0:AVERAGE:%2.1lf°C                ",
                "GPRINT:temp0:LAST:%2.1lf°C\\l",
                "LINE2:temp1#008A00:vnitrni\\:          ",
                "GPRINT:max1:MAX:%2.1lf°C               ",
                "GPRINT:max1:MIN:%2.1lf°C              ",
                "GPRINT:temp1:AVERAGE:%2.1lf°C                ",
                "GPRINT:temp1:LAST:%2.1lf°C \\l",
                "COMMENT: \\r",

 

 

AraxoN avatar 2.9.2009 21:31 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

jj, tak... len tam ku koncu máš preklep - máš tam 2x max1

2.9.2009 21:44 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

jojo

bohuzel ale vyzkousel jsem to ale asi tam bude jeste nejaka chybka:(

nyni to taky nesedi a navic nesedi ani hodnoty v jednom obrazku s krivkou (min max)

dekuju

AraxoN avatar 2.9.2009 22:55 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

Skús sem hodiť obrázok, aby som mal predstavu ako to nesedí :) ... no a s krivkou to nesedí, lebo krivku si dal zobraziť len z priemernej hodnoty - to by si musel zobraziť aj krivku maxima a minima a to by asi nebolo veľmi prehľadné...

3.9.2009 08:28 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf
Přílohy:

Aha asi mas pravdu :)

Ovsem lze nejakym zpusobem udelat aby v jedne krivce byl aktualni prubeh jak s minimem tak i s maximem - proste realny prubeh?(ono se spise jedne o graf rocni a mesicni kde je to zkresleni videt nejvice)

Prikladam obrazky

AraxoN avatar 3.9.2009 09:36 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

To je presne to - RRD kreslí krivku tak, že v každom bode tej krivky je jedna hodnota. Keďže sa Ti ten tretí graf (month) rozsahom nezmestí do najpodrobnejšieho RRA (rozlíšenie 5 minút), tak sa berie ten ďalší RRA v poradí a tam je každá jedna hodnota už skladaná zo 6-tich (rozlíšenie 30 minút). Takže jeden bod grafu by mal obsahovať aspoň 2 hodnoty - min a max z tých 6. Na to by si potreboval niečo na spôsob candlestick grafu, ale to RRD nekreslí. Takže keď chceš v grafe vykreslené naozajstné minimum a maximum aj v rozlíšení väčšom než 5 minút, tak Ti asi nič neostáva, len ich tam obe vykresliť ako 2 rôzne krivky.

3.9.2009 11:38 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

Ok diky moc - takze ani uprava struktury databaze by nepomohlka?

diky

4.9.2009 07:36 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

up :)

AraxoN avatar 4.9.2009 17:34 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

Chcem sa na to ešte pozrieť, ale najskôr asi až v nedeľu. Zatiaľ k tomu neviem nič viac povedať.

5.9.2009 19:42 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

to nevadi budu rad za kazdy poznatek.

dekuju

9.9.2009 19:25 radekkk
Rozbalit Rozbalit vše Re: RRDTOOL hodnoty a graf

Aoj AraxoNe nahodou nekoukal se na to jeste?

diky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.