#!/usr/bin/perl -w
#
# Magic markers:
#%# family=auto
#%# capabilities=autoconf

my $ret = undef;

require LWP::UserAgent;

chomp(my $fqdn=`hostname -f`);

my $URL = exists $ENV{'url'} ? $ENV{'url'} : "http://$fqdn:8081/nginx_status";

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 $response = $ua->request(HTTP::Request->new('GET',$URL));

	unless ($response->is_success and $response->content =~ /server/im)
	{
		print "no (no nginx status on $URL)\n";
		exit 1;
	}
	else
	{
		print "yes\n";
		exit 0;
	}
}

if ( exists $ARGV[0] and $ARGV[0] eq "config" )
{
	print "graph_title NGINX status\n";
    print "graph_args --base 1000\n";
	print "graph_category nginx\n";
    print "graph_vlabel Connections\n";

    print "total.label Active connections\n";
	print "total.info  Active connections\n";
	print "total.draw LINE2\n";

    print "reading.label Reading\n";
	print "reading.info  Reading\n";
	print "reading.draw LINE2\n";	

    print "writing.label Writing\n";
	print "writing.info  Writing\n";
	print "writing.draw LINE2\n";	

    print "waiting.label Waiting\n";
	print "waiting.info  Waiting\n";
	print "waiting.draw LINE2\n";	
	
	exit 0;
}

my $ua = LWP::UserAgent->new(timeout => 30);

my $response = $ua->request(HTTP::Request->new('GET',$URL));

#Active connections: 1845 
#server accepts handled requests
# 4566318 4566318 84218236 
# Reading: 2 Writing: 278 Waiting: 1565 
if ($response->content =~ /Active connections:\s+(\d+).*Reading:\s+(\d+).*Writing:\s+(\d+).*Waiting:\s+(\d+)/s) {
    print "total.value $1\n";
    print "reading.value $2\n";
    print "writing.value $3\n";
    print "waiting.value $4\n";
} else {
	foreach (qw(total reading writing waiting)){
	    print "$_.value U\n";
	}
}
