2017-09-05 53 views
0
E.g. I have following code, 

our $timeseries = { 
    _type  => 'array', 
    _pdpstep => 300, # Time resolution 
    _heartbeat => 700, # Time of loss before going to Unknown 
    _storage => 'day', 
    _ylabel => "dBm", 
    _mandatory => 'yes', 

    # hwEntityOpticalRxPower dBm * 100 
    ahwEORxPowre => { label  => 'Rx Power', 
         type  => 'GAUGE', 
         probe  => '1.2.3.4.5.6.7.8', 
         min  => -3999, 
         multiplier => 0.01, 
         }, 

    # hwEntityOpticalTxPower dBm * 100 
    bhwEOTxPower => { label  => 'Tx Power', 
         type  => 'GAUGE', 
         probe  => '1.2.3.4.5.6.7.8', 
         # -4000 means no signal 
         min  => -3999, 
         multiplier => 0.01, 
         }, 

}; 

这个数据是以毫瓦(毫瓦)为单位,我想将它转换成分贝毫瓦(dBm),为此我增加了0.01的乘数。但它不是以dBm为单位的转换值。我怎样才能做到这一点?我可以在这里添加任何公式吗?如何在RRD图形参数的参数中添加公式?

回答

1

使用子例程并将数据传递给它。

data => calc(0.01), 

然后别处定义的子过程

sub calc 
{ 
    my $var = shift; 
    return $var+100; 
}