#!/usr/local/bin/perl use strict; use warnings; use IO::Socket::UNIX; $| = 1; my $arg = shift; if ($arg && $arg eq "config") { print "graph_title rrdcached stats\n"; print "QueueLength.label Queue length\n"; print "UpdatesReceived.label UpdatesReceived\n"; print "UpdatesReceived.type DERIVE\n"; print "FlushesReceived.label FlushesReceived\n"; print "FlushesReceived.type DERIVE\n"; print "UpdatesWritten.label UpdatesWritten\n"; print "UpdatesWritten.type DERIVE\n"; print "DataSetsWritten.label DataSetsWritten\n"; print "DataSetsWritten.type DERIVE\n"; print "TreeNodesNumber.label TreeNodesNumber\n"; print "TreeDepth.label TreeDepth\n"; print "JournalBytes.label JournalBytes\n"; print "JournalBytes.type DERIVE\n"; print "JournalRotate.label JournalRotate\n"; print "JournalRotate.type DERIVE\n"; exit 0; } my $peer = exists $ENV{'peer'} ? $ENV{'peer'} : "/tmp/rrdcached.munin.sock"; my $sock = new IO::Socket::UNIX( Type => SOCK_STREAM, Peer => $peer, ) or die "Cannot open socket : $!"; print $sock "STATS\n"; print $sock "QUIT\n"; # skip first line <$sock>; print map { s/: /.value /; $_; } <$sock>; exit 0;