[rrd-users] Re: Mismatch in MAX values

Warnes, Jason SktnHR jason.warnes at saskatoonhealthregion.ca
Sat Aug 2 00:25:13 MEST 2003


I haven't seen a reply on this post yet, so I thought I'd throw in my two
cents.  I do a similar thing for some Terminal Server graphs I generate.
Here is a bit of my code snippet:

---- Start Snippet ----
use RRDs;
# Get a week's worth of points from the MAX RRA of termserver.rrd my
($start,$step,$names,$data)=RRDs::fetch("termserver.rrd","MAX","--start","-6
04800");
# Zero out all the variables
$maxweekconnections=0;
$maxweekdate=0;
# Find the max connections and time
foreach my $line (@data) {
	foreach my $val (@$line) {	# Check each value
		# Check to see if this connection count is higher than
		# the last highest that was found
		if($maxweekconnections<=$val){
			# Store the MAX value for the week
			$maxweekconnections=$val;
			# Store the date when the MAX value happened
			$maxweekdate=$start;
		}
	}
	# Add the step time to the start to keep track 
	# of what date we're looking at
	$start+=$step;
}
# Convert the epoch time to something more readable
$readablemaxweekdate=localtime($maxweekdate);
print("Max connections for the week happened on $readablemaxweekdate with
$maxweekconnections.\n);
---- End Snippet ----
I notice in your Perl script you're doing system calls to get the RRD FETCH
function to work.  Have you tried using the RRDs Perl module?  My code above
uses that and I haven't had any grief getting maximum values.

Just thought it might be worth a try.

Jason...

-----Original Message-----
From: Scott Williams [mailto:swilliams at skyriver.net] 
Sent: Wednesday, July 30, 2003 5:40 PM
To: rrd-users at list.ee.ethz.ch
Subject: [rrd-users] Mismatch in MAX values


I written a Perl script that graps the MAX input and output values from an
rrd file, but 
values that it gets does not match up with the graphs for the device. I'm
new at Perl, but I believe the logic is sound.  Here's the script that I
wrote along with the vales that I get when I run it.  I'll also but the
values that I get from the graph.  Any help with this 
would be much appreciated.


#!/usr/bin/perl -w
$t_days = $ARGV[0];
$t_watch = 60 * 60 * 24 * $t_days; 
$now = time();
$start = $now - $t_watch;

open(RRD,"rrdtool fetch ethernet.rrd MAX --start $start |") or die "Can't
open rrdtool";

$in_max = 0;
$out_max = 0;
while(<RRD>) {
    chomp;
    ($time,$stuff) = split /:\s+/;
    @ds = split /\s+/, $stuff;
    $new_bits_in = $ds[0];
    $new_bits_out = $ds[1];

    $cur_bits_in = ($new_bits_in - $old_bits_in) * 8;
    $cur_bits_out = ($new_bits_out - $old_bits_out) * 8;

    if($cur_bits_in > 0) {
        $in_max=($in_max > $cur_bits_in) ? $in_max : $cur_bits_in;
    }
    if($cur_bits_out > 0) {
        $out_max=($out_max > $cur_bits_out) ? $out_max : $cur_bits_out;
    }

    $old_bits_in = $new_bits_in;
    $old_bits_out = $new_bits_out;
}

$in_max = sprintf("%.2f", $in_max / (1024 * 1024));
$out_max = sprintf("%.2f", $out_max / 1024); * 1024));

print  "INPUT MAX: $in_max\n";
print  "OUTPUT MAX: $out_max\n";


noc# INPUT MAX: 1.10
noc# OUTPUT MAX: 0.38

On the Graphs I can see input max at 1.91 and output at 0.54


Scott Williams
Network Analyst
Skyriver Communications, Inc.
Office: (858)812-5292
Cell: (858)945-6761
 

--
Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi

--
Unsubscribe mailto:rrd-users-request at list.ee.ethz.ch?subject=unsubscribe
Help        mailto:rrd-users-request at list.ee.ethz.ch?subject=help
Archive     http://www.ee.ethz.ch/~slist/rrd-users
WebAdmin    http://www.ee.ethz.ch/~slist/lsg2.cgi



More information about the rrd-users mailing list