/[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 171 by dpavlin, Sat Feb 20 16:32:01 2010 UTC revision 172 by dpavlin, Sun Feb 21 14:33:05 2010 UTC
# Line 22  foreach my $file ( glob '*/*.np' ) { Line 22  foreach my $file ( glob '*/*.np' ) {
22    
23          my $len = int($speed / 100);          my $len = int($speed / 100);
24    
25          $graph->{ qq|"$from" -> "$to"| } = {          my $rev = qq|"$to" -> "$from"|;
26                  size => $size,  
27                  speed => $speed,          # make edge bi-directional if speed difference is less then 10%
28                  rtt => $rtt,          if ( $graph->{$rev} && abs($graph->{$rev}->{speed}->[0] - $speed) < ($speed/10) ) {
29          };                  $graph->{$rev}->{speed}->[1] = int($speed);
30                    $graph->{$rev}->{dir} = 'both';
31            } else {
32                    $graph->{ qq|"$from" -> "$to"| } = {
33                            size => $size,
34                            speed => [ int($speed) ],
35                            rtt => $rtt,
36                            dir => 'forward',
37                    };
38            }
39    
40          $min ||= $speed;          $min ||= $speed;
41          $min = $speed if $speed < $min;          $min = $speed if $speed < $min;
# Line 43  digraph "netpipe" { Line 52  digraph "netpipe" {
52  |,  |,
53  join("\n", map {  join("\n", map {
54          my $node = $_;          my $node = $_;
55          my $speed = $graph->{$_}->{speed};          my @speed = @{ $graph->{$node}->{speed} };
56            my $speed = 0;
57            $speed += $_ foreach @speed;
58            $speed /= $#speed + 1;
59          my $c = 'ff0000';          my $c = 'ff0000';
60          $c = '00ff00' if ( $speed /  100 ) > 1.5;          $c = '00ff00' if ( $speed /  100 ) > 5;
61          $c = '0000ff' if ( $speed / 1000 ) > 1;          $c = '0000ff' if ( $speed / 1000 ) > 1;
62          $c = '8888ff' if ( $speed / 1000 ) > 2;          $c = '8888ff' if ( $speed / 1000 ) > 2;
63          my $label = $speed;          my $label = qq|labelfontsize=10,weight=$speed,|;
64          $label =~ s/\.\d+//;          $label .= qq|headlabel=$speed[0],| if $speed[0];
65          qq|$node [ label="$label",color="#$c",len=$speed ]|;          $label .= qq|taillabel=$speed[1],| if $speed[1];
66            $label .= qq|style=dashed,| if $graph->{$node}->{dir} eq 'both';
67            qq|$node [ $label color="#$c",dir=$graph->{$node}->{dir} ]|;
68  } keys %$graph),  } keys %$graph),
69  qq|  qq|
70  }  }

Legend:
Removed from v.171  
changed lines
  Added in v.172

  ViewVC Help
Powered by ViewVC 1.1.26