6 use Data::Dump qw(dump);
8 my $sock = IO::Socket::INET->new(
9 PeerAddr => '127.0.0.1',
14 print "
\e[2J"; # Erase Screen
20 my $uptime = time() - $t;
21 print "
\e[2J" if $uptime % 30 == 0;
22 print "
\e[0;0H"; # Cursor Home
23 print "Gearman " . localtime(time()) . "\t
\e[34mmax update: $uptime
\e[0m\n";
24 printf "
\e[4mqueued running wrk function
\e[0m\n";
26 print $sock "STATUS\n";
28 while ( my $line = <$sock> ) {
32 next if $line =~ m/\t0$/; # ignore functions which don't have active workers
33 my ( $name, $queued, $running, $workers ) = split(/\t/,$line,4);
34 $max->{$name}->{$_} ||= 0 foreach qw(queued running);
35 $max->{$name}->{queued} = $queued if $queued > $max->{$name}->{queued};
36 $max->{$name}->{running} = $running if $running > $max->{$name}->{running};
37 printf "%3d
\e[34m%-3d
\e[0m %3d
\e[34m%-3d
\e[0m %3d %s\n"
38 , $queued, $max->{$name}->{queued}
39 , $running, $max->{$name}->{running}
46 print $sock "WORKERS\n";
48 while ( my $line = <$sock> ) {