diff --git a/db/grabron.in b/db/grabron.in index 712e0af231db42f66a01e4c8b32e9abb21de6a5b..d432c84777ca4c56ae37ae5d9b04a96ade4ee393 100755 --- a/db/grabron.in +++ b/db/grabron.in @@ -76,7 +76,7 @@ sub upload_times($$$) { my $suceeded = 0; my $failed = 0; foreach my $time (@times) { - my ($src,$dst,$latency) = @$time; + my ($src,$dst,$latency,$stddev,$lossrate) = @$time; if (!$ipmap{$src}) { warn "Got an IP ($src) that's not in the interfaces table\n"; $failed++; @@ -107,7 +107,8 @@ sub upload_times($$$) { DBQueryFatal("replace into widearea_recent set IP1='$src'," . " IP2='$dst', time=$latency, node_id1='$node_id1', " . " iface1='$iface1', node_id2='$node_id2', iface2='$iface2', " . - " bandwidth=$bandwidth"); + " bandwidth=$bandwidth, time_stddev='$stddev', " . + " lossrate='$lossrate'"); } @@ -189,16 +190,18 @@ sub get_times($) { my @return; foreach my $line (@data) { chomp $line; - if (! ($line =~ /(\d+\.\d+.\d+\.\d+)\s+(\d+\.\d+.\d+\.\d+)\s+(\d+.\d+)\s+(\d+)\s+(\d+)/) ) { + if (! ($line =~ /(\d+\.\d+.\d+\.\d+)\s+(\d+\.\d+.\d+\.\d+)\s+(\d+\.\d+)\s+(\d+\.\d+)\s+(\d+)\s+(\d+)/) ) { warn "Bad data line: $line\n"; next; } - my ($src,$dst,$avg,$successful,$unsuccessful) = ($1,$2,$3,$4,$5); + my ($src,$dst,$avg,$stddev,$successful,$unsuccessful) + = ($1,$2,$3,$4,$5,$6); if ($successful > 0) { - push @return, [$src,$dst,$avg]; + my $lossrate = ($unsuccessful*1.0)/($successful + $unsuccessful); + push @return, [$src,$dst,$avg,$stddev,$lossrate]; } elsif ($unsuccessful > 0) { - push @return, [$src,$dst,undef]; + push @return, [$src,$dst,undef,$stddev,1]; } }