Skip to content

Commit

Permalink
Add example perl pickle metric sender to contrib
Browse files Browse the repository at this point in the history
  • Loading branch information
mleinart committed Apr 6, 2012
1 parent c4b2109 commit 24458be
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions contrib/perl_pickle_client.pl
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/usr/bin/perl

use IO::Socket::INET;
use Python::Serialise::Pickle qw();

my($carbon_server) = '127.0.0.1';
my($carbon_port) = 2004;

my($data) = [
["path.mytest", [1332444075,27893687]],
["path.mytest", [1332444076,938.435]],
];

my($message) = pack("N/a*", pickle_dumps($data));

my($sock) = IO::Socket::INET->new (
PeerAddr => $carbon_server,
PeerPort => $carbon_port,
Proto => 'tcp'
);
die "Unable to connect: $!\n" unless ($sock->connected);

$sock->send($message);
$sock->shutdown(2);

# Work around P::S::Pickle 0.01's extremely limiting interface.
sub pickle_dumps {
open(my $fh, '>', \my $s) or die $!;
my $pickle = bless({ _fh => $fh }, 'Python::Serialise::Pickle');
$pickle->dump($_[0]);
$pickle->close();
return $s;
}

0 comments on commit 24458be

Please sign in to comment.