1

我不知道如何解释我的问题....但我有两个 RRD 文件:

a.rrd
b.rrd

我正在尝试总结这两个文件并将它们堆叠在图表中。像:

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

我的结果是:

替代文字 http://www.freeimagehosting.net/uploads/8d99a4a675.jpg

问题:它不打印文件 a.rrd 中的值,它仅从 b.rrd 文件的位置显示图形。

在这样的事情中(只有第一部分会用零):

替代文字 http://www.freeimagehosting.net/uploads/e036f93797.jpg

显然,这是因为第二个图没有 unix 时间戳,而第一个图有。

那么我怎样才能用零填充它呢?或更改我的图形配置?

4

1 回答 1

1

这里是你的问题的解决方案:) http://oss.oetiker.ch/rrdtool/tut/cdeftutorial.en.html 看看IF,TIME,GT等函数的使用。你可以试试这个:CDEF:Real=TIME,sometimestamp,GT,Real0_,Real0_,UN,0,Real0_,IF,IF,TIME,sometimestamp,GT,Real1_,Real1_,UN,0,Real1_,IF,IF,+这意味着: if( TIME() >有时tamp ) return Real0_ else if (Real0_ == UN(这是 rrd 文件中的 NaN 值) ) return 0 else return Real0_ 对 Real1_ 做同样的事情,并将两者相加结果。希望我有所帮助:)

于 2010-03-10T23:34:18.253 回答