#!/usr/bin/perl # Draw graphs of IP traffic from netgrind histograms # (c) 2003 Martin Mares , GPL'ed use strict; use warnings; use POSIX; my $datafile = "gp.tmp"; open D, ">$datafile" or die; my @colnames = (); my @ewma = ( 0, 0, 0, 0, 0 ); my $ew = 0.9; my $eww = 1-$ew; my $w = 60; while (<>) { chomp; if (/^#/) { s/^#\s+//; @colnames = split /\t/; } else { my $i = 0; s/\([^)]*\)//g; my %row = map { $colnames[$i++] => $_ } split /\t/; my $time = POSIX::strftime("%d-%m-%Y %H:%M:%S", localtime $row{'time'}); my @r = ( $row{'IPIn'} / $w, ($row{'IPBad'} + $row{'IPBadSum'}) / $w, $row{'IPUnint'} / $w, $row{'TCPIn'} / $w, $row{'IPFrag'} / $w ); print D "$time"; for (my $i=0; $i<=$#r; $i++) { $ewma[$i] = $ew*$ewma[$i] + $eww*$r[$i]; print D "\t", $ewma[$i]; } print D "\n"; } } close D; open GP, "|gnuplot" or die; print GP <