From ad2e656d36c5738eb80fa7532aa6d6a3a69b32ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodolphe=20Qui=E9deville?= Date: Fri, 3 Jun 2011 11:43:10 +0200 Subject: [PATCH] Initial version --- plugins/other/geowebcache-blankitems | 124 +++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100755 plugins/other/geowebcache-blankitems diff --git a/plugins/other/geowebcache-blankitems b/plugins/other/geowebcache-blankitems new file mode 100755 index 00000000..86577238 --- /dev/null +++ b/plugins/other/geowebcache-blankitems @@ -0,0 +1,124 @@ +#!/usr/bin/perl +# -*- perl -*- + +# Author Rodolphe Quiédeville +# Licence : GPLv2 +# Code based on tomcat_volume plugin by +# Rune Nordbøe Skillingstad + +=head1 NAME + +geowebcache_blankitems - Plugin to monitor the ratio of blank items served by +GeoWebCache servers. + +version 1.0.1 + +=head1 CONFIGURATION + +The following environment variables are used by this plugin + +=over 4 + +=item timeout + +Connection timeout + +=item url + +Override default status-url + +=item ports + +HTTP port numbers + +=back + +=head2 CONFIGURATION EXAMPLE + + [geowebcache_blankitems] + env.url localhost:%d/geoserver/gwc + env.ports 8081 + +=head1 AUTHOR + +Rodolphe Quiédeville + +=head1 USAGE + +Needs access to +http://localhost:8080/gwc (or modify the address for another host). + +If geowebcache is used inside GeoServer the url will be +http://localhost:8080/geoserver/gwc + +GeoWebCache 1.2 or higher. + +Tip: To see if it's already set up correctly, just run this plugin +with the parameter "autoconf". If you get a "yes", everything should +work like a charm already. + +=head1 MAGIC MARKERS + + #%# family=manual + #%# capabilities=autoconf + +=cut + +use strict; + +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/geowebcache/home"; +my $PORT = exists $ENV{'ports'} ? $ENV{'ports'} : 8080; +my $TIMEOUT = exists $ENV{'timeout'} ? $ENV{'timeout'} : 30; + +my $url = sprintf $URL, $PORT; + +if(exists $ARGV[0] and $ARGV[0] eq "autoconf") { + if($ret) { + print "no ($ret)\n"; + exit 0; + } + my $au = LWP::UserAgent->new(timeout => $TIMEOUT); + my $response = $au->request(HTTP::Request->new('GET',$url)); + if($response->is_success and $response->content =~ /GWC Home/im) { + print "yes\n"; + exit 0; + } else { + print "no geowebcache found\n"; + exit 0; + } +} + +if(exists $ARGV[0] and $ARGV[0] eq "config") { + print "graph_title GeoWebCache Percent of blank requests\n"; + print "graph_args --base 1000\n"; + print "graph_vlabel %\n"; + print "graph_category geowebcache\n"; + print "graph_info Blankidth graph is an average on the last 60 seconds\n"; + print "blank.draw LINE1\n"; + print "blank.label % of blank KML/HTML\n"; + print "blank.type GAUGE\n"; + print "blank.max 1000000000\n"; + print "blank.min 0\n"; + print "blank.colour 0068B3\n"; + exit 0; +} + +my $ua = LWP::UserAgent->new(timeout => $TIMEOUT); +my $response = $ua->request(HTTP::Request->new('GET',$url)); + +if ($response->content =~ 'Blank/KML/HTML:(\d+\.?\d+)% of requests') { + my $value = $1; + $value = $value * 1024 if ($2 eq 'k'); + $value = $value * 1024 * 1024 if ($2 eq 'm'); + print "blank.value " . $value; +} else { + print "blank.value U\n"; +} + +# vim:syntax=perl