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

$showruntimestats="/opt/open-xchange/sbin/showruntimestats";
$showexec="$showruntimestats --misc";

if ( $ARGV[0] and $ARGV[0] eq "autoconf")
{
	if (-x $showruntimestats) {
		print "yes\n";
		exit 0;
	}
	else {
		print "no\n";
		exit 0;
	}
}

if ( $ARGV[0] and $ARGV[0] eq "config")
{
	print "graph_title Misc\n";
	print "graph_args --base 1000 -l 0\n";
	print "graph_category Open Xchange\n";
	print "graph_vlabel Number\n";
	print "b.label AJAXConnections\n";
	print "b.draw LINE1\n";
	print "c.label WebDAVUserConnections\n";
	print "c.draw LINE1\n";
	print "d.label OutlookConnections\n";
	print "d.draw LINE1\n";
	print "e.label SyncMLConnections\n";
	print "e.draw LINE1\n";
	print "f.label IMAPConnections\n";
	print "f.draw LINE1\n";
	print "g.label Threads\n";
	print "g.draw LINE1\n";
	exit 0
}
									

open(SHOWRUNTIME,"$showexec |") || die "can not read monitoring output";   

while (<SHOWRUNTIME>)
{
	if ( $_ =~ /GeneralMonitor,NumberOfAJAXConnections/) {
		s/.*\=//; 
		$val=$_+0;
		print "b.value $val\n";
		next;
	}
	if ( $_ =~ /GeneralMonitor,NumberOfWebDAVUserConnections/) {
		s/.*\=//; 
		$val=$_+0;
		print "c.value $val\n";
		next;
	}
	if ( $_ =~ /GeneralMonitor,NumberOfOutlookConnections/) {
		s/.*\=//; 
		$val=$_+0;
		print "d.value $val\n";
		next;
	}
	if ( $_ =~ /GeneralMonitor,NumberOfSyncMLConnections/) {
		s/.*\=//; 
		$val=$_+0;
		print "e.value $val\n";
		next;
	}
		if ( $_ =~ /GeneralMonitor,NumberOfIMAPConnections/) {
		s/.*\=//; 
		$val=$_+0;
		print "f.value $val\n";
		next;
	}
    if ( $_ =~ /Threading,ThreadCount/) {
        s/.*\=//; 
        $val=$_+0;
        print "g.value $val\n";
        next;
    }
}

close (SHOWRUNTIME);
