added default apache modules
authormh <mh@d66ca3ae-40d7-4aa7-90d4-87d79ca94279>
Sun, 30 Mar 2008 17:34:40 +0000 (17:34 +0000)
committermh <mh@d66ca3ae-40d7-4aa7-90d4-87d79ca94279>
Sun, 30 Mar 2008 17:34:40 +0000 (17:34 +0000)
git-svn-id: https://rfd.cronopios.org/ipuppet/trunk/modules/munin@1152 d66ca3ae-40d7-4aa7-90d4-87d79ca94279

files/plugins/apache_activity [new file with mode: 0755]
manifests/host.pp
manifests/plugin.pp

diff --git a/files/plugins/apache_activity b/files/plugins/apache_activity
new file mode 100755 (executable)
index 0000000..65fc072
--- /dev/null
@@ -0,0 +1,99 @@
+#!/usr/bin/perl
+#
+# Parameters supported:
+#
+#      config
+#      autoconf
+#
+# Configurable variables
+#
+#      url      - Override default status-url
+#
+# Magic markers:
+#%# family=auto
+#%# capabilities=autoconf
+
+my $ret = undef;
+if (!eval "require LWP::UserAgent;") {
+    $ret = "LWP::UserAgent not found";
+}
+
+my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://127.0.0.1:%d/server-status?auto";
+my @PORTS = exists $ENV{'ports'} ? split(' ', $ENV{'ports'}) : (80);
+my %chars = (
+            # '\_' => 'Waiting',
+            # 'S' => 'Starting up',
+            'R' => 'Reading request',
+            'W' => 'Sending reply',
+            'K' => 'Keepalive',
+            'D' => 'DNS lookup',
+            'C' => 'Closing',
+            # 'L' => 'Logging',
+            # 'G' => 'Gracefully finishing',
+            # 'I' => 'Idle cleanup',
+            # '\.' => 'Open slot',
+            );
+
+#    "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
+#    "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
+#    "C" Closing connection, "L" Logging, "G" Gracefully finishing,
+#    "I" Idle cleanup of worker, "." Open slot with no current process
+
+if (exists $ARGV[0] and $ARGV[0] eq "autoconf") {
+    if ($ret) {
+       print "no ($ret)\n";
+       exit 1;
+    }
+    my $ua = LWP::UserAgent->new(timeout => 30);
+    my @badports;
+    
+    foreach my $port (@PORTS) {
+       my $url = sprintf $URL, $port;
+       my $response = $ua->request(HTTP::Request->new('GET',$url));
+       push @badports, $port unless $response->is_success and $response->content =~ /Scoreboard/im;
+    }
+    
+    if (@badports) {
+       print "no (no apache server-status on ports @badports)\n";
+       exit 1;
+    } else {
+       print "yes\n";
+       exit 0;
+    }
+}
+
+if (exists $ARGV[0] and $ARGV[0] eq "config") {
+    print "graph_title Apache activity\n";
+    print "graph_args --base 1000 -l 0\n";
+    print "graph_category apache\n";
+    print "graph_vlabel processes\n";
+    foreach my $port (@PORTS) {
+       while (my ($char, $val) = each (%chars)) {
+           $char =~ s/\\\./dot/;
+            $char =~ s/\\\_/underline/;
+            print "activity_${port}_${char}.label ";
+           print $val, "\n";
+            print "activity_${port}_${char}.type GAUGE\n";
+        }
+    }    
+    exit 0;
+}
+
+foreach my $port (@PORTS) {
+    my $ua = LWP::UserAgent->new (timeout => 30);
+    my $url = sprintf $URL, $port;
+    my $response = $ua->request (HTTP::Request->new('GET',$url));
+    if ($response->content =~ /^Scoreboard\:\s?(.*)$/sm) {
+       my $string = $1;
+       chomp $string;
+       my @act = split (//, $string);
+       foreach my $char (keys (%chars)) {
+           my $num = scalar (grep (/$char/, @act));
+           $char =~ s/\\\./dot/;
+           $char =~ s/\\\_/underline/;
+           print "activity_${port}_${char}.value $num\n";
+       }
+    }
+}
+
+
index 286f5ee..3ae6065 100644 (file)
@@ -19,6 +19,7 @@ class munin::host
         mode => 640, owner => munin, group => 0;
     }
 
+    munin::plugins::djbdns
        
 }
 
index ebf1cd4..8a76df4 100644 (file)
@@ -199,12 +199,24 @@ class munin::plugins::physical inherits munin::plugins::base {
      munin::plugin { iostat: }
 }
 
+class munin::plugins::muninhost inherits munin::plugins::base {
+    munin::plugin { munin_update: }
+    munin::plugin { munin_graph: }
+}
+
 class munin::plugins::domU inherits munin::plugins::base { }
 
 class munin::plugins::djbdns inherits munin::plugins::base {
     munin::plugin::deploy { "tinydns": }
 }
 
+class munin::plugins::apache inherits munin::plugins::base {
+    munin::plugin::deploy { "apache_accesses": }
+    munin::plugin::deploy { "apache_processes": }
+    munin::plugin::deploy { "apache_volume": }
+    munin::plugin::deploy { "apache_activity": }
+}
+
 class munin::plugins::postgres inherits munin::plugins::base {
     munin::plugin::deploy { "pg_conn": }
     munin::plugin::deploy { "pg__connections": enabled => false }