Bastos

let’s code!

Pegando estatísticas do Memcached usando Sockets

July 31st, 2008 · No Comments

Eu queria ver as estatísticas do memcached, então resolvi procurar na internet e achei isso: http://lists.danga.com/pipermail/memcached/2003-October/000354.html, mas ai resolvi mudar um pouco para pegar todos os dados e virou:

#!/usr/bin/perl
use IO::Socket;
my $socket = IO::Socket::INET->new( PeerAddr => $ARGV[0],
                                    PeerPort => $ARGV[1],
                                    Proto    => "tcp",
                                    Type     => SOCK_STREAM)
					or die($@);
print $socket "stats\n";
$out = <$socket>
while ($out ne "END\r\n") {
    if ($out =~ m/STAT (\w+) ([0-9.]+)/) {
        print "$1 $2\n";
    }
    $out = <$socket>
}
close($socket);

*Para usa: ./memcachecheck.pl IP PORTA

Mas ai um colega de trabalho (Rudy Matela) me falou que podia ser feito em shell script:

#!/bin/sh
echo -e 'stats\nquit' | netcat $1 $2 | grep STAT | sed -e "s/STAT //"  -e "s/ /\\t/"

* Para usa: ./memcachecheck.sh IP PORTA

Muito mais legal! Porém resolvi também fazer em Ruby:

#!/usr/bin/ruby
require 'socket'
out = TCPSocket.open($*[0],$*[1]) do |socket|
  socket.puts 'stats'
  socket.puts 'quit'
  socket.read
end
out.each { |line| print line.gsub(/STAT /,"") if line =~ /STAT (\w+) ([0-9.]+)/ }

* Para usa: ./memcachecheck.rb IP PORTA

Tags: bash · memcached · perl · ruby · sockets

0 responses so far ↓

  • There are no comments yet...Kick things off by filling out the form below.

Leave a Comment