Perl 当第二个RRD文件现在才启动时,求两个图的和
我不知道如何解释我的问题。。。。但是 我有两个RRD文件:Perl 当第二个RRD文件现在才启动时,求两个图的和,perl,graph,stack,nan,rrd,Perl,Graph,Stack,Nan,Rrd,我不知道如何解释我的问题。。。。但是 我有两个RRD文件: a.rrd b.rrd 我试图将这两个文件相加,并将它们叠加到图表中。 比如: 我的结果是: 问题:它不打印文件a.rrd中的值,它仅从b.rrd文件的位置显示图形 灌输类似的东西(只有第一部分是零): 显然,这是因为第二个图没有unix时间戳,而第一个图没有 那么我如何用零来填充它呢?或者更改我的图形配置?以下是问题的解决方案:) 看看IF、TIME、GT等函数的用法。 您可以尝试以下方法: CDEF:Real=TIME,som
a.rrd
b.rrd
我试图将这两个文件相加,并将它们叠加到图表中。
比如:
我的结果是:
问题:它不打印文件a.rrd中的值,它仅从b.rrd文件的位置显示图形
灌输类似的东西(只有第一部分是零):
显然,这是因为第二个图没有unix时间戳,而第一个图没有
那么我如何用零来填充它呢?或者更改我的图形配置?以下是问题的解决方案:) 看看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()>sometimestamp) 返回Real0_ else if(Real0_==UN(这是rrd文件中的NaN值)) 返回0 其他的 返回Real0_ 对实数1做同样的事情,并将两个结果相加。
希望我能帮上忙:)以下是解决您问题的方法:) 看看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()>sometimestamp) 返回Real0_ else if(Real0_==UN(这是rrd文件中的NaN值)) 返回0 其他的 返回Real0_ 对实数1做同样的事情,并将两个结果相加。 希望我能帮忙:)
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',