2010-03-04 24 views
1

Je ne sais pas comment expliquer mon problème .... mais je deux fichiers RRD:deux graphiques, lorsque le second fichier RRD est démarré seulement maintenant

a.rrd 
b.rrd 

Je suis en train de additionner les deux fichiers et les placer dans le graphique. aime:

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', 

Et mon résultat est:

alt text http://www.freeimagehosting.net/uploads/8d99a4a675.jpg

problème: il n'imprime pas les valeurs du fichier a.rrd, il afficher le graphique que de la position du b Fichier .rrd.

instide de quelque chose comme ça (seulement la première partie sera avec des zéros):

alt text http://www.freeimagehosting.net/uploads/e036f93797.jpg

De toute évidence, cela est parce que le deuxième graphique ne pas timestamp unix lorsque le premier graphique fait. Alors comment puis-je le remplir avec des zéros?

ou changer mon conf graphique?

Répondre

1

Voici la solution à votre problème :) http://oss.oetiker.ch/rrdtool/tut/cdeftutorial.en.html Jetez un oeil à l'utilisation des fonctions IF, TIME, GT et etc. Vous pouvez essayer ceci: CDEF: Real = TEMPS, sometimestamp, GT, Real0_, Real0_, UN, 0, Real0_, IF, IF, TEMPS, sometimestamp, GT, Real1_, Real1_, UN, 0, Real1_, IF, IF , + cela signifie: si (TIME()> sometimestamp) retour Real0_ else if (Real0_ == ONU (ce qui est la valeur NaN dans les fichiers RRD)) retour 0 autre retour Real0_ Faire la même chose pour le Real1 et faites la somme des deux résultats. J'espère avoir aidé :)