2017-09-05 82 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; 
}