Sum zwei Graphen, wenn die zweite RRD-Datei erst jetzt gestartet
Frage
Ich weiß nicht, wie mein Problem zu erklären .... aber Ich habe zwei RRD-Dateien:
a.rrd
b.rrd
Ich versuche, die beiden Dateien zu summieren und staple sie in der Grafik oben. wie:
my $bla = RRDs::graph "-",
"--title","Test",
"--imgformat=PNG",
"--width=680",
"--height=200",
"DEF:Default0_=a.rrd:default:AVERAGE",
"DEF:Real0_=a.rrd:real:AVERAGE",
"DEF:Default1_=b.rrd:default:AVERAGE",
"DEF:Real1_=b.rrd:real:AVERAGE",
"CDEF:Default=Default0_,Default1_,+",
"CDEF:Real=Real0_,Real1_,+",
'AREA:Default#00CF00:Default Test',
'GPRINT:Default:MIN:Min\: %10.0lf%s',
'GPRINT:Default:MAX:Max\: %10.0lf%s',
'GPRINT:Default:AVERAGE:Average\: %10.0lf%s',
'GPRINT:Default:LAST:Current\: %10.0lf%s \l',
'STACK:Real#006699:Real Test',
'LINE2:Real#000000',
'GPRINT:Real:MIN:Min\: %10.0lf%s',
'GPRINT:Real:MAX:Max\: %10.0lf%s',
'GPRINT:Real:AVERAGE:Average\: %10.0lf%s',
'GPRINT:Real:LAST:Current\: %10.0lf%s \l',
Und mein Ergebnis ist:
alt text http://www.freeimagehosting.net/uploads/8d99a4a675.jpg
Problem:. Es nicht die Werte aus der Datei a.rrd drucken, das Diagramm angezeigt werden nur aus der Position der b.rrd Datei
instide von so etwas wie diese (nur dem ersten Teil mit Nullen sein wird):
alt text http://www.freeimagehosting.net/uploads/e036f93797.jpg
Offensichtlich ist dies, weil der zweite Graph nicht Unix-Zeitstempel hat, wenn der erste Graph der Fall ist.
Wie kann ich also füllen Sie es mit Nullen? oder meinen Graph conf ändern?
Lösung
Hier ist die Lösung für Ihr Problem :) http://oss.oetiker.ch/rrdtool/tut/cdeftutorial.en. html Werfen Sie einen Blick auf die Verwendung von IF, TIME, GT und etc. Funktionen. Sie können versuchen, diese: CDEF: Tatsächlicher = TIME, sometimestamp, GT, Real0_, Real0_, UN, 0, Real0_, IF, IF, TIME, sometimestamp, GT, Real1_, Real1_, UN, 0, Real1_, IF, IF, + Das heisst: if (TIME ()> sometimestamp) Rückkehr Real0_ wenn andere (Real0_ == UN (dies ist der Wert NaN in rrd-Dateien)) return 0 sonst Rückkehr Real0_ Machen Sie dasselbe für die Real1_ und die Summe der beiden Ergebnis machen. Hoffe, dass ich geholfen:)