munin-contrib/plugins/sphinx/sphinx_connections

63 lines
1.7 KiB
PHP
Executable File

#!/usr/bin/php
<?php
/**
* @author: Konstantin Kuklin <konstantin.kuklin@gmail.com>
* Date: 24.05.12
*/
$host = getenv('host');
$port = getenv('port');
if (!$host)
$host = '127.0.0.1';
if (!$port)
$port = 9306;
$sCommandSystem = "echo 'show status;' | mysql -h{$host} -P{$port} | grep connections | awk '{ print $2}';";
$sTmpFilePath = "/tmp/sphinx_connections";
if (isset($argc) && $argc > 1) {
if ($argv[1] == 'autoconf') {
echo "yes\n";
}
if ($argv[1] == 'config') {
echo "graph_title Sphinx Connections in last 5 minutes\n" .
"graph_info This graph shows the number of connections for last 5 minutes\n" .
"graph_category search\n" .
"graph_args --base 1000 --lower-limit 0\n" .
"graph_vlabel Connections\n" .
"graph_info The number of current connections with respect to the max_connections setting.graph_category search\n" .
"graph_order current\n" .
"graph_total Total\n" .
"current.label In Use\n" .
"current.draw AREA\n" .
"current.info The number of connections in last 5 minutes\n" .
"current.warning 2500\n" .
"current.critical 4000\n";
}
exit(0);
}
$iCurrent = @exec($sCommandSystem);
if (!file_exists($sTmpFilePath)) {
$fp = fopen($sTmpFilePath, "w");
fputs($fp, $iCurrent);
fclose($fp);
$toShow = 0;
} else {
$iOldCount = file_get_contents($sTmpFilePath, true);
$fp = fopen($sTmpFilePath, "w");
fputs($fp, $iCurrent);
fclose($fp);
$toShow = (int) ($iCurrent - (int) $iOldCount);
if ($toShow < 0) {
$toShow = 0;
}
}
echo "current.value $toShow\n";