Add munin monitoring of rrdcached
authorTom Hughes <tom@compton.nu>
Tue, 2 Sep 2014 20:45:12 +0000 (21:45 +0100)
committerTom Hughes <tom@compton.nu>
Tue, 2 Sep 2014 20:45:12 +0000 (21:45 +0100)
cookbooks/munin/files/default/plugins/rrdcached [new file with mode: 0644]
cookbooks/munin/recipes/server.rb

diff --git a/cookbooks/munin/files/default/plugins/rrdcached b/cookbooks/munin/files/default/plugins/rrdcached
new file mode 100644 (file)
index 0000000..ff18a9a
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+# -*- cperl -*-
+
+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 $sock = new IO::Socket::UNIX(
+       Type => SOCK_STREAM,
+       Peer => "/var/run/rrdcached.sock",
+) or die "Cannot open socket : $!";
+
+print $sock "STATS\n";
+print $sock "QUIT\n";
+
+# skip first line
+<$sock>;
+print map { s/: /.value /; $_; } <$sock>;
+
+exit 0;
index 983f922..0c74cd0 100644 (file)
@@ -40,6 +40,8 @@ service "rrdcached" do
   subscribes :restart, "template[/etc/default/rrdcached]"
 end
 
+munin_plugin "rrdcached"
+
 expiry_time = 14 * 86400
 
 clients = search(:node, "recipes:munin").select { |n| n[:munin] }.sort_by { |n| n[:hostname] }