Problem med rrdtool graph

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!
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

Detta kommer från det senaste testet under en halv timme.
rrd file /root/rrd/temps2.rrd created
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.1875:25.4375:23.75
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.25:25.375:23.75
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.25:25.375:23.6875
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.25:25.4375:23.75
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.25:25.375:23.75
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.25:25.4375:23.75
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.3125:25.4375:23.75
/usr/bin/rrdupdate /root/rrd/temps2.rrd N:10.3125:25.4375:23.75

Jag tycker det ser bra ut.
När jag stoppar loggnigen och skall skapa en graf en den nya databasen
sker samma grej. Den står och hänger och efter ett tag spottar den ut en
massa siffror lägst ner.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Problem med rrdtool graph

Inlägg av elf98 »

Och hur ser en dump för hela perioden ut?
info från databasen?

(Lägg gärna in det som "Code" så blir det lättare att läsa)
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Problem med rrdtool graph

Inlägg av Plutonium »

Jag har ett fungerande perl skript för owfs också..

Kod: Markera allt

#!/usr/bin/perl
#
# rrd_owfstemp.pl

use lib qw(/usr/local/rrdtool-1.2.15/lib/perl);
use RRDs;

# define location of rrdtool databases
my $rrd = '/home/SCRIPT/RRD_DB';
# define location of images
my $img = '/home/plutonium/public_html/temps/';

# process data for each devices (add/delete as required)
&ProcessSensor("10.2A7A7C010800", "Temperatur på vinden");
&ProcessSensor("10.E68E7C010800", "Temperatur i växthuset");
#&ProcessSensor("your device id here", "temp sensor 2");

sub ProcessSensor
{
# process sensor
# inputs: $_[0]: sensor number (ie, 0/1/2/etc)
#         $_[1]: sensor description

        # get temperature from sensor
        my $temp = `grep . /mnt/1wire/$_[0]/temperature | sed -e s/" "//g`;

        # remove eol chars
        chomp($temp);

        print "sensor $_[0]: $temp degrees C\n";

        # if rrdtool database doesn't exist, create it
        if (! -e "$rrd/owfs-$_[0].rrd")
        {
                print "creating rrd database for temp sensor $_[0]...\n";
                RRDs::create "$rrd/owfs-$_[0].rrd",
                        "-s 300",
                        "DS:temp:GAUGE:600:U:U",
                        "RRA:AVERAGE:0.5:1:2016",
                        "RRA:AVERAGE:0.5:6:1344",
                        "RRA:AVERAGE:0.5:24:2190",
                        "RRA:AVERAGE:0.5:144:3650",
                        "RRA:AVERAGE:0.3:1440:1825";
        }
        if ($ERROR = RRDs::error) { print "$0: failed to create $_[0] database file: $ERROR\n"; }

        # check for error code from temp sensor
        if (int $temp eq 85)
        {
                print "failed to read value from sensor $_[0]\n";
        }
        elsif (int $temp eq 00)
        {
                print "failed to read value from sensor $_[0]\n";
        }
        else
        {
                # insert values into rrd
                RRDs::update "$rrd/owfs-$_[0].rrd",
                        "-t", "temp",
                        "N:$temp";
                if ($ERROR = RRDs::error) { print "$0: failed to insert $_[0] data into rrd: $ERROR\n"; }
        }


        # create graphs for current sensor
        &CreateGraph($_[0], "day", $_[1]);
        &CreateGraph($_[0], "week", $_[1]);
        &CreateGraph($_[0], "month", $_[1]);
        &CreateGraph($_[0], "year", $_[1]);
        &CreateGraph($_[0], "5year", $_[1]);
}                       
                        
sub CreateGraph         
{                       
# creates graph
# inputs: $_[0]: sensor number (ie, 0/1/2/etc)
#         $_[1]: interval (ie, day, week, month, year)
#         $_[2]: sensor description
        
        RRDs::graph "$img/temp-$_[0]-$_[1].png",
                "-s -1$_[1]",
                "-t $_[2]",
                "--lazy",
                "-h", "150", "-w", "475",
                "-a", "PNG",
                "-v plutonium.homelinux.com",
                "--slope-mode",
                "DEF:temp=$rrd/owfs-$_[0].rrd:temp:AVERAGE",
                "LINE2:temp#0000FF::",
                "GPRINT:temp:MIN:  Min\\: %6.1lf",
                "GPRINT:temp:MAX:  Max\\: %6.1lf",
                "GPRINT:temp:AVERAGE: Snitt\\: %6.1lf",
                "GPRINT:temp:LAST: Nuvarande\\: %6.1lf grader C\\n";
        if ($ERROR = RRDs::error) { print "$0: unable to generate sensor $_[0] $_[1] graph: $ERROR\n"; }
}
Du behöver inte använda detta skript, men möjligheten finns..
Hoppas allt löser sig.
http://essunga.org
Moderator - Temperatur.nu
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

Tackar för eran hjälp.

Jag tog ditt script med owfs och testa.
Jag bara ändra adresserna till mina temp. sensorer.

Samma sak.
Den skapar database m.m.
Men när den skall skapa graf bilden går cpu upp i 99% i ca 10-15 min.
När bilden är klar har jag en massa siffror längs ner.

Börja tro att det är en BUGG i programmet.
Då har jag ändå testat att installera om rrd.

Man börjar tröttna på detta. :(
Fundera på att installera om mitt os!!(Kör Debian)
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

elf98 skrev:Och hur ser en dump för hela perioden ut?
info från databasen?

(Lägg gärna in det som "Code" så blir det lättare att läsa)
Testa att skapa en dump.
Filen blev 13Mb
Vet ej om jag kan klistra in detta.

info om databasen.

Kod: Markera allt

owfs-10.4EFF5F010800.rrd  rrd_owfstemp.pl
nas:~/rrd2# rrdtool info owfs-10.4EFF5F010800.rrd
filename = "owfs-10.4EFF5F010800.rrd"
rrd_version = "0003"
step = 300
last_update = 1221057460
ds[temp].type = "GAUGE"
ds[temp].minimal_heartbeat = 600
ds[temp].min = NaN
ds[temp].max = NaN
ds[temp].last_ds = "UNKN"
ds[temp].value = 1.2485228369e+02
ds[temp].unknown_sec = 150
rra[0].cf = "AVERAGE"
rra[0].rows = 2016
rra[0].cur_row = 2015
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 = 1344
rra[1].cur_row = 1343
rra[1].pdp_per_row = 6
rra[1].xff = 5.0000000000e-01
rra[1].cdp_prep[0].value = NaN
rra[1].cdp_prep[0].unknown_datapoints = 1
rra[2].cf = "AVERAGE"
rra[2].rows = 2190
rra[2].cur_row = 2189
rra[2].pdp_per_row = 24
rra[2].xff = 5.0000000000e-01
rra[2].cdp_prep[0].value = NaN
rra[2].cdp_prep[0].unknown_datapoints = 7
rra[3].cf = "AVERAGE"
rra[3].rows = 3650
rra[3].cur_row = 3649
rra[3].pdp_per_row = 144
rra[3].xff = 5.0000000000e-01
rra[3].cdp_prep[0].value = NaN
rra[3].cdp_prep[0].unknown_datapoints = 31
rra[4].cf = "AVERAGE"
rra[4].rows = 1825
rra[4].cur_row = 1824
rra[4].pdp_per_row = 1440
rra[4].xff = 3.0000000000e-01
rra[4].cdp_prep[0].value = NaN
rra[4].cdp_prep[0].unknown_datapoints = 751
nas:~/rrd2#
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Problem med rrdtool graph

Inlägg av elf98 »

Zippa filen och lägg upp den, eller zippa och maila den till info@temperatur.nu så lägger jag upp väl valda delar.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

Här kommer den zip:ad.
Bilagor
test.zip
dump file
(925.85 KiB) Nerladdad 370 gånger
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

Nu har jag testat att koppla om allt till en annan gammal Linux server jag har.

Installerat owfs , rrd osv.

Kopierat över exakt samma skrip som jag har haft problem med.

Det tar inte en sek och bilden är klar.
Alla MAX & MIN i botten av bilen är jätte bra.
Inga problem. :D

Det måste vart bugg i det andra systemet.

//Patrik
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Problem med rrdtool graph

Inlägg av Plutonium »

Gott att det löste sig för dig..
http://essunga.org
Moderator - Temperatur.nu
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

Jo. Men nu kör jag på en annan maskin som jag inte vill använda.

Fler som har samma problem som jag.

https://lists.oetiker.ch/pipermail/rrd- ... 13730.html

Om man kör debian på nslu2 + rrd.
chol
Wannabe
Inlägg: 19
Blev medlem: 18 maj 2008, 21:33
Ort: Alingsås

Re: Problem med rrdtool graph

Inlägg av chol »

Problem med väldigt långa tider för att generera grafer med RRDTool och GPRINT har jag också haft. Har inte gått till botten med det då jag hittade ett par grafer som funkade fint och räcker för mig som jag använder LINE för att skapa.

Så hör gör jag för att skapa 1 veckas och 24-timmarsgrafer:

RRDp::cmd "graph graphs/$s$opt_s.png --imgformat PNG --start '$starttime' --end
'$endtime' --width $width --height $height -E --title '$title'
--vertical-label
'Celsius' -l 0",
"DEF:".$s."temp=$rrd:temp:AVERAGE",
"LINE2:".$s."temp#FF0000",
# "GPRINT:".$s."temp:LAST:\"%d\\n\"",
"COMMENT:\"$com\"";

Skulle jag kommentera in GPRINT tar det många många minuter(har inte orkat vänta) så det är oanvändbart tyvärr. Nånstans på nätet läste jag nåt rykte om att GPRINT och ARM-baserade arkitekturer inte gick bra ihop. Och våra kära NSLU2:or är ju just det så...
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

chol skrev:Problem med väldigt långa tider för att generera grafer med RRDTool och GPRINT har jag också haft. Har inte gått till botten med det då jag hittade ett par grafer som funkade fint och räcker för mig som jag använder LINE för att skapa.

Så hör gör jag för att skapa 1 veckas och 24-timmarsgrafer:

RRDp::cmd "graph graphs/$s$opt_s.png --imgformat PNG --start '$starttime' --end
'$endtime' --width $width --height $height -E --title '$title'
--vertical-label
'Celsius' -l 0",
"DEF:".$s."temp=$rrd:temp:AVERAGE",
"LINE2:".$s."temp#FF0000",
# "GPRINT:".$s."temp:LAST:\"%d\\n\"",
"COMMENT:\"$com\"";

Skulle jag kommentera in GPRINT tar det många många minuter(har inte orkat vänta) så det är oanvändbart tyvärr. Nånstans på nätet läste jag nåt rykte om att GPRINT och ARM-baserade arkitekturer inte gick bra ihop. Och våra kära NSLU2:or är ju just det så...
Stämmer
Kolla här.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=447041
http://www.mail-archive.com/rrd-users@l ... 13686.html

Har försökt kompelera om rrdtool man inte har lyckats. Har för lite tid.

Återkommer när jag har fått ordnig på skiten.
//Pat
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

Så.
Nu funkar det med GPRINT.

Jag har fått installera om min Linksys NSLU2 från Debian till Unslung firmware.
Kör samma skript som förut och nu funkar allt.

Det är sol klart att rrdtool hade en BUGG för debian versionen(Om man ville använda GPRINT).

//patriko
chol
Wannabe
Inlägg: 19
Blev medlem: 18 maj 2008, 21:33
Ort: Alingsås

Re: Problem med rrdtool graph

Inlägg av chol »

Tack för tipset!

Buggen är nog inte bara i Debian utan visar sitt tryne även under OpenSlug 3.10.
Inte sugen på Unslung för tillfället dock. Men vem vet, kanske dyker upp en ny optware-variant snart som funkar bättre...
patriko
Wannabe
Inlägg: 21
Blev medlem: 29 mar 2008, 21:40
Ort: Göteborg

Re: Problem med rrdtool graph

Inlägg av patriko »

elf98 skrev:
ds[ute].value = 3.0381717307e+03
Ser lite galet varmt ut...
Hur kan man förstå denna value?
Kan man räkna om den på något sett??

Ex om kör en

Kod: Markera allt

rrdtool fetch temps2.rrd MAX -r 9000 -s -25h
Så kommer det massa roliga siffror.
Den första kolumn är UNIX time.
Vad är resten?
Skriv svar