/[sysadmin-cookbook]/recepies/netpipe-tcp/np2graphviz.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /recepies/netpipe-tcp/np2graphviz.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 99 by dpavlin, Mon May 25 21:15:25 2009 UTC revision 100 by dpavlin, Mon May 25 22:11:20 2009 UTC
# Line 3  Line 3 
3  use warnings;  use warnings;
4  use strict;  use strict;
5    
6    my $graph;
7    
8    my ($max,$min);
9    
10  foreach my $file ( glob '*/*.np' ) {  foreach my $file ( glob '*/*.np' ) {
11    
12          my $direction = $file;          my $direction = $file;
# Line 15  foreach my $file ( glob '*/*.np' ) { Line 19  foreach my $file ( glob '*/*.np' ) {
19          my ( $size, $speed, $rtt ) = split(/\s+/, $line);          my ( $size, $speed, $rtt ) = split(/\s+/, $line);
20    
21          warn "$from -> $to | $size | $speed | $rtt\n";          warn "$from -> $to | $size | $speed | $rtt\n";
22    
23            my $len = int($speed / 100);
24    
25            $graph->{ qq|"$from" -> "$to"| } = {
26                    size => $size,
27                    speed => $speed,
28                    rtt => $rtt,
29            };
30    
31            $min ||= $speed;
32            $min = $speed if $speed < $min;
33    
34            $max ||= $speed;
35            $max = $speed if $speed > $max;
36    
37  }  }
38    
39    warn "# speed $min ... $max\n";
40    
41    print qq|
42    digraph "netpipe" {
43    |,
44    join("\n", map {
45            my $node = $_;
46            my $speed = $graph->{$_}->{speed};
47            my $c = 'ff0000';
48            $c = '00ff00' if ( $speed /  100 ) > 1;
49            $c = '0000ff' if ( $speed / 1000 ) > 1;
50            $c = '8888ff' if ( $speed / 1000 ) > 2;
51            my $label = $speed;
52            $label =~ s/\.\d+//;
53            qq|$node [ label="$label",color="#$c",len=$speed ]|;
54    } keys %$graph),
55    qq|
56    }
57    |;
58    

Legend:
Removed from v.99  
changed lines
  Added in v.100

  ViewVC Help
Powered by ViewVC 1.1.26