2010-04-21 25 views
0

我想通過Perl來做我的第一個rrd圖。 我試過RRD::Simple和rrds,只是無法讓任何一個人工作。如何使用Perl和RRD繪製ping時間?

這是我到目前爲止有:

use strict; 
use RRD::Simple(); 

# Create an interface object 
my $rrd = RRD::Simple->new(file => "server.rrd"); 

# Put some arbitary data values in the RRD file for the same 
# 3 data sources called bytesIn, bytesOut and faultsPerSec. 
$rrd->create(
      EqSearch => "DERIVE", 
      MfSearch => "DERIVE", 
      EQCostBasis => "DERIVE", 
      MFCostBasis => "DERIVE" 
     ); 

$rrd->update(
      EqSearch => 2, 
      MfSearch => 3, 
      EQCostBasis => 10, 
      MFCostBasis => 15 
     ); 

# Generate graphs: 
# /var/tmp/myfile-daily.png, /var/tmp/myfile-weekly.png 
# /var/tmp/myfile-monthly.png, /var/tmp/myfile-annual.png 
my %rtn = $rrd->graph(
      destination => "/Users/cmuench/Documents/Code/perl", 
      title => "Server A", 
      vertical_label => "", 
      interlaced => "", 
      periods => [qw(hour)] 
     ); 

輸出是:

graph http://www.mediafire.com/imgbnc.php/a39e2bd662adefa823dca66351db637c5g.jpg

+0

你能告訴我們你到目前爲止已經嘗試了什麼,以及你的示例輸出嗎? – 2010-04-21 19:53:27

+0

codebin: http://code-bin.homedns.org/602 和輸出PNG http://www.mediafire.com/file/4jdrymiyhmm/server-hourly.png – 2010-04-21 20:45:49

+0

這是好得多使它在Stackoverflow的問題的一部分,所以它不會消​​失。 – 2010-04-21 21:05:53

回答

0

從你上面的腳本,主要的問題是,你沒有足夠的數據來顯示在圖表中。你可以使用'rrdtool fetch`看到你的rrd中的數據。

如果您可以使用bash而不是perl。看看這個「Round Trip and Packet Loss stats with rrdtool

如果你仍然想使用Perl模塊,RRD::Simple,請看看使用此模塊即RRD::Simple::Examples的例子或提供有關您所面臨的問題的詳細信息。

+0

不幸的是,我真的需要使用perl,因爲我的腳本的其他部分用perl編寫。沒有人? – 2010-04-22 16:05:17

+0

什麼是其他部分,以及您面臨的問題/錯誤。 – Space 2010-04-23 04:37:29

+0

基本上,我生成的圖形,但沒有數據顯示在裏面。 – 2010-04-23 17:46:31