From e0bc04ce097cac739ec2e8a063903973e45018eb Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Mon, 25 May 2009 22:11:20 +0000 Subject: [PATCH] create graphviz dot file git-svn-id: svn://svn.rot13.org/sysadmin-cookbook@100 191e9f34-6774-4a6d-acfc-7664dacd4a2a --- recepies/netpipe-tcp/np2graphviz.pl | 39 ++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/recepies/netpipe-tcp/np2graphviz.pl b/recepies/netpipe-tcp/np2graphviz.pl index e546c25..e877e6e 100755 --- a/recepies/netpipe-tcp/np2graphviz.pl +++ b/recepies/netpipe-tcp/np2graphviz.pl @@ -3,6 +3,10 @@ use warnings; use strict; +my $graph; + +my ($max,$min); + foreach my $file ( glob '*/*.np' ) { my $direction = $file; @@ -15,7 +19,40 @@ foreach my $file ( glob '*/*.np' ) { my ( $size, $speed, $rtt ) = split(/\s+/, $line); warn "$from -> $to | $size | $speed | $rtt\n"; -} + my $len = int($speed / 100); + + $graph->{ qq|"$from" -> "$to"| } = { + size => $size, + speed => $speed, + rtt => $rtt, + }; + + $min ||= $speed; + $min = $speed if $speed < $min; + $max ||= $speed; + $max = $speed if $speed > $max; + +} + +warn "# speed $min ... $max\n"; + +print qq| +digraph "netpipe" { +|, +join("\n", map { + my $node = $_; + my $speed = $graph->{$_}->{speed}; + my $c = 'ff0000'; + $c = '00ff00' if ( $speed / 100 ) > 1; + $c = '0000ff' if ( $speed / 1000 ) > 1; + $c = '8888ff' if ( $speed / 1000 ) > 2; + my $label = $speed; + $label =~ s/\.\d+//; + qq|$node [ label="$label",color="#$c",len=$speed ]|; +} keys %$graph), +qq| +} +|; -- 2.20.1