shoutcast application monitor. improvements to powerdns application monitor

git-svn-id: http://www.observium.org/svn/observer/trunk@2606 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Adam Amstrong
2011-09-28 23:24:28 +00:00
parent bb049fa654
commit 02e309fa7d
17 changed files with 690 additions and 274 deletions

View File

@@ -1,36 +1,32 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$colours = "red";
$nototal = 0;
$unit_text = "Packets/sec";
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$array = array(
'corruptPackets' => array('descr' => 'Corrupt', 'colour' => 'FF8800FF'),
'servfailPackets' => array('descr' => 'Failed', 'colour' => 'FF0000FF'),
'q_timedout' => array('descr' => 'Timedout', 'colour' => 'FFFF00FF'),
);
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$i = 0;
if (is_file($rrd_filename)) {
foreach ($array as $ds => $vars) {
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else {
echo("file missing: $file");
}
$array = array('corruptPackets' => array('descr' => 'Corrupt', 'colour' => 'FF8800FF'),
'servfailPackets' => array('descr' => 'Failed', 'colour' => 'FF0000FF'),
'q_timedout' => array('descr' => 'Timed out', 'colour' => 'FFFF00FF'),
);
$i = 0;
if (is_file($rrd_filename))
{
foreach ($array as $ds => $vars)
{
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else { echo("file missing: $file"); }
$colours = "red";
$nototal = 0;
$unit_text = "Packets/sec";
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
?>

View File

@@ -1,27 +1,20 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$ds = "latency";
$colour_area = "6699FF";
$colour_line = "336699";
$colour_area_max = "FFEE99";
$graph_max = 100;
$unit_text = "Latency";
$powerdns_rrd = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$powerdns_rrd = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
if (is_file($powerdns_rrd)) {
$rrd_filename = $powerdns_rrd;
}
if (is_file($powerdns_rrd))
{
$rrd_filename = $powerdns_rrd;
}
$ds = "latency";
$colour_area = "6699FF";
$colour_line = "336699";
$colour_area_max = "FFEE99";
$graph_max = 100;
$unit_text = "Latency";
include("includes/graphs/generic_simplex.inc.php");
include("includes/graphs/generic_simplex.inc.php");
?>

View File

@@ -1,36 +1,32 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$colours = "blue";
$nototal = 0;
$unit_text = "Packets/sec";
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$array = array(
'pc_hit' => array('descr' => 'Hits', 'colour' => '008800FF'),
'pc_miss' => array('descr' => 'Misses', 'colour' => '880000FF'),
'pc_size' => array('descr' => 'Size', 'colour' => '006699FF'),
);
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$i = 0;
if (is_file($rrd_filename)) {
foreach ($array as $ds => $vars) {
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else {
echo("file missing: $file");
}
$array = array('pc_hit' => array('descr' => 'Hits', 'colour' => '008800FF'),
'pc_miss' => array('descr' => 'Misses', 'colour' => '880000FF'),
'pc_size' => array('descr' => 'Size', 'colour' => '006699FF'),
);
$i = 0;
if (is_file($rrd_filename))
{
foreach ($array as $ds => $vars)
{
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else { echo("file missing: $file"); }
$colours = "blue";
$nototal = 0;
$unit_text = "Packets/sec";
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
?>

View File

@@ -1,37 +1,33 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$array = array(
'q_tcpAnswers' => array('descr' => 'TCP Answers', 'colour' => '008800FF'),
'q_tcpQueries' => array('descr' => 'TCP Queries', 'colour' => '00FF00FF'),
'q_udpAnswers' => array('descr' => 'UDP Answers', 'colour' => '336699FF'),
'q_udpQueries' => array('descr' => 'UDP Queries', 'colour' => '6699CCFF'),
);
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$i = 0;
if (is_file($rrd_filename)) {
foreach ($array as $ds => $vars) {
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else {
echo("file missing: $file");
}
$array = array('q_tcpAnswers' => array('descr' => 'TCP Answers', 'colour' => '008800FF'),
'q_tcpQueries' => array('descr' => 'TCP Queries', 'colour' => '00FF00FF'),
'q_udpAnswers' => array('descr' => 'UDP Answers', 'colour' => '336699FF'),
'q_udpQueries' => array('descr' => 'UDP Queries', 'colour' => '6699CCFF'),
);
$i = 0;
if (is_file($rrd_filename))
{
foreach ($array as $ds => $vars)
{
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else { echo("file missing: $file"); }
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
?>

View File

@@ -1,37 +1,33 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$array = array(
'q_udp4Answers' => array('descr' => 'UDP4 Answers', 'colour' => '00008888'),
'q_udp4Queries' => array('descr' => 'UDP4 Queries', 'colour' => '000088FF'),
'q_udp6Answers' => array('descr' => 'UDP6 Answers', 'colour' => '88000088'),
'q_udp6Queries' => array('descr' => 'UDP6 Queries', 'colour' => '880000FF'),
);
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$i = 0;
if (is_file($rrd_filename)) {
foreach ($array as $ds => $vars) {
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else {
echo("file missing: $file");
}
$array = array('q_udp4Answers' => array('descr' => 'UDP4 Answers\t', 'colour' => '00008888'),
'q_udp4Queries' => array('descr' => 'UDP4 Queries ', 'colour' => '000088FF'),
'q_udp6Answers' => array('descr' => 'UDP6 Answers ', 'colour' => '88000088'),
'q_udp6Queries' => array('descr' => 'UDP6 Queries ', 'colour' => '880000FF'),
);
$i = 0;
if (is_file($rrd_filename))
{
foreach ($array as $ds => $vars)
{
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else { echo("file missing: $file"); }
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
?>

View File

@@ -1,36 +1,31 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$array = array(
'qc_miss' => array('descr' => 'Misses', 'colour' => '750F7DFF'),
'qc_hit' => array('descr' => 'Hits', 'colour' => '00FF00FF'),
);
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$i = 0;
if (is_file($rrd_filename)) {
foreach ($array as $ds => $vars) {
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else {
echo("file missing: $file");
}
$array = array('qc_miss' => array('descr' => 'Misses', 'colour' => '750F7DFF'),
'qc_hit' => array('descr' => 'Hits', 'colour' => '00FF00FF'),
);
$i = 0;
if (is_file($rrd_filename))
{
foreach ($array as $ds => $vars)
{
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else { echo("file missing: $file"); }
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
//include("includes/graphs/generic_multi_simplex_seperated.inc.php");
include("includes/graphs/generic_multi_line.inc.php");
include("includes/graphs/generic_multi_line.inc.php");
?>

View File

@@ -1,36 +1,31 @@
<?php
$scale_min = 0;
include("includes/graphs/common.inc.php");
include("includes/graphs/common.inc.php");
$scale_min = 0;
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$array = array(
'rec_questions' => array('descr' => 'Questions', 'colour' => '6699CCFF'),
'rec_answers' => array('descr' => 'Answers', 'colour' => '336699FF'),
);
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/app-powerdns-".$app['app_id'].".rrd";
$i = 0;
if (is_file($rrd_filename)) {
foreach ($array as $ds => $vars) {
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else {
echo("file missing: $file");
}
$array = array('rec_questions' => array('descr' => 'Questions', 'colour' => '6699CCFF'),
'rec_answers' => array('descr' => 'Answers', 'colour' => '336699FF'),
);
$i = 0;
if (is_file($rrd_filename))
{
foreach ($array as $ds => $vars)
{
$rrd_list[$i]['filename'] = $rrd_filename;
$rrd_list[$i]['descr'] = $vars['descr'];
$rrd_list[$i]['ds'] = $ds;
$rrd_list[$i]['colour'] = $vars['colour'];
$i++;
}
} else { echo("file missing: $file"); }
$colours = "mixed";
$nototal = 0;
$unit_text = "Packets/sec";
//include("includes/graphs/generic_multi_simplex_seperated.inc.php");
include("includes/graphs/generic_multi_line.inc.php");
include("includes/graphs/generic_multi_line.inc.php");
?>

View File

@@ -0,0 +1,27 @@
<?php
$units = "b";
$total_units = "B";
$colours_in = "greens";
//$multiplier = "0";
$colours_out = "blues";
$nototal = 1;
$ds_in = "traf_in";
$ds_out = "traf_out";
$graph_title .= "::bits";
$colour_line_in = "006600";
$colour_line_out = "000099";
$colour_area_in = "CDEB8B";
$colour_area_out = "C3D9FF";
$rrddir = $config['rrd_dir']."/".$device['hostname'];
$hostname = (isset($_GET['hostname']) ? $_GET['hostname'] : "unkown");
$rrd_filename = $rrddir."/app-shoutcast-".$app['app_id']."-".$hostname.".rrd";
include("includes/graphs/generic_bits.inc.php");
?>

View File

@@ -0,0 +1,49 @@
<?php
$units = "b";
$total_units = "B";
$colours_in = "greens";
$multiplier = "8";
$colours_out = "blues";
$nototal = 1;
$ds_in = "traf_in";
$ds_out = "traf_out";
$graph_title = "Traffic Statistic";
$colour_line_in = "006600";
$colour_line_out = "000099";
$colour_area_in = "CDEB8B";
$colour_area_out = "C3D9FF";
$rrddir = $config['rrd_dir']."/".$device['hostname'];
$files = array();
$i = 0;
if ($handle = opendir($rrddir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (eregi("app-shoutcast-".$app['app_id'], $file)) {
array_push($files, $file);
}
}
}
}
foreach ($files as $id=>$file) {
$hostname = eregi_replace('app-shoutcast-'.$app['app_id'].'-', '', $file);
$hostname = eregi_replace('.rrd', '', $hostname);
list($host, $port) = split('_', $hostname, 2);
$rrd_filenames[] = $rrddir."/".$file;
$rrd_list[$i]['filename'] = $rrddir."/".$file;
$rrd_list[$i]['descr'] = $host.":".$port;
$rrd_list[$i]['ds_in'] = $ds_in;
$rrd_list[$i]['ds_out'] = $ds_out;
$i++;
}
include("includes/graphs/generic_multi_bits_separated.inc.php");
?>

View File

@@ -0,0 +1,90 @@
<?php
//$colour = "random";
$unit_text = "ShoutCast Server";
$total_text = "Total of all ShoutCast Servers";
$nototal = 0;
$rrddir = $config['rrd_dir']."/".$device['hostname'];
$files = array();
$i = 0;
$x = 0;
if ($handle = opendir($rrddir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
if (eregi("app-shoutcast-".$app['app_id'], $file)) {
array_push($files, $file);
}
}
}
}
foreach ($files as $id=>$file) {
$hostname = eregi_replace('app-shoutcast-'.$app['app_id'].'-', '', $file);
$hostname = eregi_replace('.rrd', '', $hostname);
list($host, $port) = split('_', $hostname, 2);
$rrd_filenames[] = $rrddir."/".$file;
$rrd_list[$i]['filename'] = $rrddir."/".$file;
$rrd_list[$i]['descr'] = $host.":".$port;
$rrd_list[$i]['colour'] = $colour;
$i++;
}
include("includes/graphs/common.inc.php");
if ($width > "500") {
$descr_len = 38;
} else {
$descr_len = 8;
$descr_len += round(($width - 250) / 8);
}
if ($width > "500") {
$rrd_options .= " COMMENT:\"".substr(str_pad($unit_text, $descr_len+2), 0, $descr_len+2)." Current Unique Average Peak\\n\"";
} else {
$rrd_options .= " COMMENT:\"".substr(str_pad($unit_text, $descr_len+5), 0, $descr_len+5)." Now Unique Average Peak\\n\"";
}
foreach ($rrd_list as $rrd) {
$colours = (isset($rrd['colour']) ? $rrd['colour'] : "default");
$strlen = ((strlen($rrd['descr'])<$descr_len) ? ($descr_len - strlen($rrd['descr'])) : "0");
$descr = (isset($rrd['descr']) ? str_replace(":", "\:", substr(str_pad($rrd['descr'], $desc_len+$strlen), 0, $descr_len+$strlen)) : "Unkown");
for ($z=0; $z<$strlen; $z++) { $descr .= " "; }
if ($i) { $stack = "STACK"; }
$colour = $config['graph_colours'][$colours][$x];
$rrd_options .= " DEF:cur".$x."=".$rrd['filename'].":current:AVERAGE";
$rrd_options .= " DEF:peak".$x."=".$rrd['filename'].":peak:MAX";
$rrd_options .= " DEF:unique".$x."=".$rrd['filename'].":unique:AVERAGE";
$rrd_options .= " VDEF:avg".$x."=cur".$x.",AVERAGE";
$rrd_options .= " AREA:cur".$x."#".$colour.":\"".$descr."\":$stack";
$rrd_options .= " GPRINT:cur".$x.":LAST:\"%6.2lf\"";
$rrd_options .= " GPRINT:unique".$x.":LAST:\"%6.2lf%s\"";
$rrd_options .= " GPRINT:avg".$x.":\"%6.2lf\"";
$rrd_options .= " GPRINT:peak".$x.":LAST:\"%6.2lf\"";
$rrd_options .= " COMMENT:\"\\n\"";
if ($x) {
$totcur .= ",cur".$x.",+";
$totpeak .= ",peak".$x.",+";
$totunique .= ",unique".$x.",+";
}
$x = (($x<count($config['graph_colours'][$colours])-1) ? $x+1 : 0);
//$x++;
}
if (!$nototal) {
$strlen = ((strlen($total_text)<$descr_len) ? ($descr_len - strlen($total_text)) : "0");
$descr = (isset($total_text) ? str_replace(":", "\:", substr(str_pad($total_text, $desc_len+$strlen), 0, $descr_len+$strlen)) : "Total");
$colour = $config['graph_colours'][$colours][$x];
for ($z=0; $z<$strlen; $z++) { $descr .= " "; }
$rrd_options .= " CDEF:totcur=cur0".$totcur;
$rrd_options .= " CDEF:totunique=unique0".$totunique;
$rrd_options .= " CDEF:totpeak=peak0".$totpeak;
$rrd_options .= " VDEF:totavg=totcur,AVERAGE";
$rrd_options .= " LINE2:totcur#".$colour.":\"".$descr."\"";
$rrd_options .= " GPRINT:totcur:LAST:\"%6.2lf\"";
$rrd_options .= " GPRINT:totunique:LAST:\"%6.2lf%s\"";
$rrd_options .= " GPRINT:totavg:\"%6.2lf\"";
$rrd_options .= " GPRINT:totpeak:LAST:\"%6.2lf\"";
$rrd_options .= " COMMENT:\"\\n\"";
}
?>

View File

@@ -0,0 +1,42 @@
<?php
$rrddir = $config['rrd_dir']."/".$device['hostname'];
$hostname = (isset($_GET['hostname']) ? $_GET['hostname'] : "unkown");
$rrd_filename = $rrddir."/app-shoutcast-".$app['app_id']."-".$hostname.".rrd";
include("includes/graphs/common.inc.php");
$rrd_options .= " DEF:cur=".$rrd_filename.":current:AVERAGE";
$rrd_options .= " DEF:max=".$rrd_filename.":max:MAX";
//$rrd_options .= " DEF:bit=".$rrd_filename.":bitrate:LAST";
$rrd_options .= " DEF:bit=".$rrd_filename.":bitrate:MAX";
$rrd_options .= " DEF:peak=".$rrd_filename.":peak:MAX";
$rrd_options .= " DEF:unique=".$rrd_filename.":unique:AVERAGE";
$rrd_options .= " DEF:status=".$rrd_filename.":status:AVERAGE";
$rrd_options .= " CDEF:peakm=peak,1,-";
$rrd_options .= " VDEF:avg=cur,AVERAGE";
$rrd_options .= " VDEF:peakh=peakm,MAXIMUM";
$rrd_options .= " CDEF:bitrate=bit,8,*";
$rrd_options .= " CDEF:server=status,UN,1,0,IF";
$rrd_options .= " CDEF:server_offline=status,1,LT,1,UNKN,IF";
$rrd_options .= " CDEF:stream=max,UN,1,0,IF";
$rrd_options .= " CDEF:stream_offline=max,1,LT,1,UNKN,IF";
$rrd_options .= " AREA:cur#63C2FEFF:\"Current Listeners\"";
if ($width >= 355) {
$rrd_options .= " GPRINT:cur:LAST:\"\:%8.2lf\"";
$rrd_options .= " GPRINT:max:LAST:\"from%8.2lf\"";
$rrd_options .= " GPRINT:bitrate:LAST:\"(bitrate\:%8.2lf%s\"";
$rrd_options .= " COMMENT:\")\\n\"";
} else {
$rrd_options .= " GPRINT:cur:LAST:\"\:%8.2lf\\n\"";
}
$rrd_options .= " AREA:unique#AADEFEFF:\"Unique Listeners \"";
$rrd_options .= " GPRINT:unique:LAST:\"\:%8.2lf%s\\n\"";
$rrd_options .= " HRULE:avg#FF9000FF:\"Average Listeners\"";
$rrd_options .= " GPRINT:avg:\"\:%8.2lf\\n\"";
$rrd_options .= " LINE1:peak#C000FFFF:\"Peak Listeners \"";
$rrd_options .= " GPRINT:peak:LAST:\"\:%8.2lf\\n\"";
$rrd_options .= " TICK:stream_offline#B4FF00FF:1.0:\"Streaming client offline\\n\"";
$rrd_options .= " TICK:server_offline".$warn_colour_b."FF:1.0:\"Streaming server offline\"";
?>