Index: html/pages/device.inc.php
===================================================================
--- html/pages/device.inc.php (revision 3)
+++ html/pages/device.inc.php (revision 11)
@@ -168,9 +168,10 @@
}
// Build array of smokeping files for use in tab building and smokeping page.
- if (isset($config['smokeping']['dir']))
+ if (isset($config['smokeping']['srv']))
{
$smokeping_files = get_smokeping_files();
+ $smokeping_servers = get_smokeping_server_array($smokeping_files['outgoing']);
}
// Print latency tab if there are smokeping files with source or destination matching this hostname
Index: html/pages/device/latency.inc.php
===================================================================
--- html/pages/device/latency.inc.php (revision 3)
+++ html/pages/device/latency.inc.php (revision 11)
@@ -38,16 +38,9 @@
{
if (count($smokeping_files['incoming'][$device['hostname']]))
{
- $graph_array['type'] = "device_smokeping_in_all_avg";
$graph_array['device'] = $device['device_id'];
- echo('
');
- echo('Average');
- print_graph_row($graph_array);
-
- echo(' |
');
-
- $graph_array['type'] = "device_smokeping_in_all";
+ $graph_array['type'] = "ping_smokeping_in_all";
$graph_array['legend'] = 'no';
echo('');
echo('Aggregate');
@@ -55,7 +48,20 @@
print_graph_row($graph_array);
echo(' |
');
+
+ foreach ($smokeping_servers as $smokeping_server)
+ {
+ $graph_array['type'] = "ping_smokeping_in_all_det";
+ $graph_array['legend'] = 'no';
+ $graph_array['srv'] = $smokeping_server;
+ echo('');
+ echo('Detailed - '.$smokeping_server.'');
+ print_graph_row($graph_array);
+
+ echo(' |
');
+ }
+
unset($graph_array['legend']);
ksort($smokeping_files['incoming'][$device['hostname']]);
@@ -82,24 +88,30 @@
{
if (count($smokeping_files['outgoing'][$device['hostname']]))
{
- $graph_array['type'] = "device_smokeping_out_all_avg";
$graph_array['device'] = $device['device_id'];
+
+ $graph_array['type'] = "ping_smokeping_out_all";
+ $graph_array['legend'] = 'no';
echo('');
- echo('Average');
+ echo('Aggregate');
print_graph_row($graph_array);
echo(' |
');
+
+ foreach ($smokeping_servers as $smokeping_server)
+ {
+ $graph_array['type'] = "ping_smokeping_out_all_det";
+ $graph_array['legend'] = 'no';
+ $graph_array['srv'] = $smokeping_server;
+ echo('');
+ echo('Detailed - '.$smokeping_server.'');
- $graph_array['type'] = "device_smokeping_out_all";
- $graph_array['legend'] = 'no';
- echo(' |
');
- echo('Aggregate');
+ print_graph_row($graph_array);
- print_graph_row($graph_array);
+ echo(' |
');
+ }
- echo('');
-
unset($graph_array['legend']);
asort($smokeping_files['outgoing'][$device['hostname']]);
Index: html/pages/graphs.inc.php
===================================================================
--- html/pages/graphs.inc.php (revision 3)
+++ html/pages/graphs.inc.php (revision 11)
@@ -102,6 +102,30 @@
$navbar['options']['graph'] = array('text' => ucfirst($type).' ('.$subtype.')',
'url' => generate_url($vars, array('type' => $type."_".$subtype, 'page' => "graphs")));
break;
+ case 'ping':
+ foreach ($title_array as $key => $element)
+ {
+ $navbar['options'][$key] = $element;
+ }
+ if ($vars['type'] == "ping_smokeping_in_all_det")
+ {
+ foreach ($smokeping_servers as $smokeping_server)
+ {
+ if ($vars['srv'] == $smokeping_server)
+ {
+ $navbar['options']['graph']['suboptions'][$smokeping_server]['class'] = 'active';
+ $navbar['options']['graph']['text'] .= 'Smokeping ('.$smokeping_server.')';
+ }
+ $navbar['options']['graph']['suboptions'][$smokeping_server]['text'] = $smokeping_server;
+ $navbar['options']['graph']['suboptions'][$smokeping_server]['url'] = generate_url($vars, array('page' => "graphs", 'srv' => $smokeping_server));
+ }
+ }
+ else {
+ $navbar['options']['graph'] = array('text' => 'Smokeping Aggregate',
+ 'url' => generate_url($vars, array('page' => "graphs")));
+ }
+
+ break;
default:
# Load our list of available graphtypes for this object
/// FIXME not all of these are going to be valid
Index: html/includes/graphs/device/smokeping_out_all.inc.php
===================================================================
--- html/includes/graphs/device/smokeping_out_all.inc.php (revision 3)
+++ html/includes/graphs/device/smokeping_out_all.inc.php (revision 11)
@@ -1,18 +0,0 @@
-Human translation:>
-
-$scale_min = 0;
-$scale_rigid = TRUE;
-
-include_once($config['html_dir']."/includes/graphs/common.inc.php");
-include("smokeping_common.inc.php");
-
-$i = 0;
-$pings = 20;
-$iter = 0;
-$colourset = "mixed";
-
-if($width > "500")
-{
- $descr_len = 25;
-} else {
- $descr_len = 12 + round(($width - 275) / 8);
-}
-
-if($width > "500")
-{
- $rrd_options .= " COMMENT:'".substr(str_pad($unit_text, $descr_len+5),0,$descr_len+5)." RTT Loss SDev RTT\:SDev\l'";
-} else {
- $rrd_options .= " COMMENT:'".substr(str_pad($unit_text, $descr_len+5),0,$descr_len+5)." RTT Loss SDev RTT\:SDev\l'";
-}
-
-foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filename)
-{
-
- if (!isset($config['graph_colours'][$colourset][$iter])) { $iter = 0; }
- $colour = $config['graph_colours'][$colourset][$iter];
- $iter++;
-
- $descr = rrdtool_escape($source, $descr_len);
-
- $rrd_options .= " DEF:median$i=".$filename.":median:AVERAGE ";
- $rrd_options .= " DEF:loss$i=".$filename.":loss:AVERAGE";
- $rrd_options .= " CDEF:ploss$i=loss$i,$pings,/,100,*";
- $rrd_options .= " CDEF:dm$i=median$i";
-# $rrd_options .= " CDEF:dm$i=median$i,0,".$max->{$start}.",LIMIT";
-
- // start emulate Smokeping::calc_stddev
- foreach (range(1, $pings) as $p)
- {
- $rrd_options .= " DEF:pin".$i."p".$p."=".$filename.":ping".$p.":AVERAGE";
- $rrd_options .= " CDEF:p".$i."p".$p."=pin".$i."p".$p.",UN,0,pin".$i."p".$p.",IF";
- }
-
- unset($pings_options, $m_options, $sdev_options);
-
- foreach (range(2, $pings) as $p)
- {
- $pings_options .= ",p".$i."p".$p.",UN,+";
- $m_options .= ",p".$i."p".$p.",+";
- $sdev_options .= ",p".$i."p".$p.",m".$i.",-,DUP,*,+";
- }
-
- $rrd_options .= " CDEF:pings".$i."=".$pings .",p".$i."p1,UN". $pings_options . ",-";
- $rrd_options .= " CDEF:m".$i."=p".$i."p1".$m_options.",pings".$i.",/";
- $rrd_options .= " CDEF:sdev".$i."=p".$i."p1,m".$i.",-,DUP,*".$sdev_options.",pings".$i.",/,SQRT";
- // end emulate Smokeping::calc_stddev
-
- $rrd_options .= " CDEF:dmlow$i=dm$i,sdev$i,2,/,-";
- $rrd_options .= " CDEF:s2d$i=sdev$i";
- $rrd_options .= " AREA:dmlow$i";
- $rrd_options .= " AREA:s2d$i#".$colour."30::STACK";
- $rrd_options .= " LINE1:dm$i#".$colour.":'$descr'";
-
-# $rrd_options .= " LINE1:sdev$i#000000:$descr";
-
- $rrd_options .= " VDEF:avmed$i=median$i,AVERAGE";
- $rrd_options .= " VDEF:avsd$i=sdev$i,AVERAGE";
- $rrd_options .= " CDEF:msr$i=median$i,POP,avmed$i,avsd$i,/";
- $rrd_options .= " VDEF:avmsr$i=msr$i,AVERAGE";
-
- $rrd_options .= " GPRINT:avmed$i:'%5.1lf%ss'";
- $rrd_options .= " GPRINT:ploss$i:AVERAGE:'%5.1lf%%'";
-
- $rrd_options .= " GPRINT:avsd$i:'%5.1lf%Ss'";
- $rrd_options .= " GPRINT:avmsr$i:'%5.1lf%s\\l'";
-
- $i++;
-}
-
-?>
Index: html/includes/graphs/device/smokeping_common.inc.php
===================================================================
--- html/includes/graphs/device/smokeping_common.inc.php (revision 3)
+++ html/includes/graphs/device/smokeping_common.inc.php (revision 11)
@@ -1,16 +0,0 @@
-
Index: html/includes/graphs/device/smokeping_out_all_avg.inc.php
===================================================================
--- html/includes/graphs/device/smokeping_out_all_avg.inc.php (revision 3)
+++ html/includes/graphs/device/smokeping_out_all_avg.inc.php (revision 11)
@@ -1,18 +0,0 @@
-Human translation:>
-
-$scale_min = 0;
-$scale_rigid = TRUE;
-
-include_once($config['html_dir']."/includes/graphs/common.inc.php");
-include("smokeping_common.inc.php");
-
-$i = 0;
-$pings = 20;
-$iter = 0;
-$colourset = "mixed";
-
-if($width > "500")
-{
- $descr_len = 25;
-} else {
- $descr_len = 12 + round(($width - 275) / 8);
-}
-
-// FIXME str_pad really needs a "limit to length" so we can rid of all the substrs all over the code to limit the length as below...
-if($width > "500")
-{
- $rrd_options .= " COMMENT:'".substr(str_pad($unit_text, $descr_len+5),0,$descr_len+5)." RTT Loss SDev RTT\:SDev\l'";
-} else {
- $rrd_options .= " COMMENT:'".substr(str_pad($unit_text, $descr_len+5),0,$descr_len+5)." RTT Loss SDev RTT\:SDev\l'";
-}
-
-foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filename)
-{
-
- if (!isset($config['graph_colours'][$colourset][$iter])) { $iter = 0; }
- $colour = $config['graph_colours'][$colourset][$iter];
- $iter++;
-
- $descr = rrdtool_escape($source, $descr_len);
-
- $rrd_options .= " DEF:median$i=".$filename.":median:AVERAGE ";
- $rrd_options .= " CDEF:dm$i=median$i,UN,0,median$i,IF";
- $rrd_options .= " DEF:loss$i=".$filename.":loss:AVERAGE";
- $rrd_options .= " CDEF:ploss$i=loss$i,$pings,/,100,*";
-# $rrd_options .= " CDEF:dm$i=median$i";
-# $rrd_options .= " CDEF:dm$i=median$i,0,".$max->{$start}.",LIMIT";
-
- // start emulate Smokeping::calc_stddev
- foreach (range(1, $pings) as $p)
- {
- $rrd_options .= " DEF:pin".$i."p".$p."=".$filename.":ping".$p.":AVERAGE";
- $rrd_options .= " CDEF:p".$i."p".$p."=pin".$i."p".$p.",UN,0,pin".$i."p".$p.",IF";
- }
-
- unset($pings_options, $m_options, $sdev_options);
-
- foreach (range(2, $pings) as $p)
- {
- $pings_options .= ",p".$i."p".$p.",UN,+";
- $m_options .= ",p".$i."p".$p.",+";
- $sdev_options .= ",p".$i."p".$p.",m".$i.",-,DUP,*,+";
- }
-
- $rrd_options .= " CDEF:pings".$i."=".$pings .",p".$i."p1,UN". $pings_options . ",-";
- $rrd_options .= " CDEF:m".$i."=p".$i."p1".$m_options.",pings".$i.",/";
- $rrd_options .= " CDEF:sdev".$i."=p".$i."p1,m".$i.",-,DUP,*".$sdev_options.",pings".$i.",/,SQRT";
- // end emulate Smokeping::calc_stddev
-
- $rrd_options .= " CDEF:dmlow$i=dm$i,sdev$i,2,/,-";
- $rrd_options .= " CDEF:s2d$i=sdev$i";
-
- $dm_list .= ",dm$i,+";
- $sd_list .= ",s2d$i,+";
- $ploss_list .= ",ploss$i,+";
-
- $i++;
-
-}
-
-$descr = rrdtool_escape("Average", $descr_len);
-
-$rrd_options .= " CDEF:ploss_all=0".$ploss_list.",$i,/";
-$rrd_options .= " CDEF:dm_all=0".$dm_list.",$i,/";
-# $rrd_options .= " CDEF:dm_all_clean=dm_all,UN,NaN,dm_all,IF";
-$rrd_options .= " CDEF:sd_all=0".$sd_list.",$i,/";
-$rrd_options .= " CDEF:dmlow_all=dm_all,sd_all,2,/,-";
-
-$rrd_options .= " AREA:dmlow_all";
-$rrd_options .= " AREA:sd_all#AAAAAA::STACK";
-$rrd_options .= " LINE1:dm_all#CC0000:'$descr'";
-
-$rrd_options .= " VDEF:avmed=dm_all,AVERAGE";
-$rrd_options .= " VDEF:avsd=sd_all,AVERAGE";
-$rrd_options .= " CDEF:msr=dm_all,POP,avmed,avsd,/";
-$rrd_options .= " VDEF:avmsr=msr,AVERAGE";
-
-$rrd_options .= " GPRINT:avmed:'%5.1lf%ss'";
-$rrd_options .= " GPRINT:ploss_all:AVERAGE:'%5.1lf%%'";
-$rrd_options .= " GPRINT:avsd:'%5.1lf%Ss'";
-$rrd_options .= " GPRINT:avmsr:'%5.1lf%s\\l'";
-
-?>
Index: html/includes/graphs/ping/smokeping_common.inc.php
===================================================================
--- html/includes/graphs/ping/smokeping_common.inc.php (revision 0)
+++ html/includes/graphs/ping/smokeping_common.inc.php (revision 11)
@@ -0,0 +1,16 @@
+
Index: html/includes/graphs/ping/smokeping_in_all_det.inc.php
===================================================================
--- html/includes/graphs/ping/smokeping_in_all_det.inc.php (revision 0)
+++ html/includes/graphs/ping/smokeping_in_all_det.inc.php (revision 11)
@@ -0,0 +1,18 @@
+ "500")
+{
+ $descr_len = 25;
+} else {
+ $descr_len = 12 + round(($width - 275) / 8);
+}
+
+// FIXME str_pad really needs a "limit to length" so we can rid of all the substrs all over the code to limit the length as below...
+if($width > "500")
+{
+ $rrd_options .= " COMMENT:' Average Min Max Last\l'";
+} else {
+ $rrd_options .= " COMMENT:' Average Min Max Last\l'";
+}
+
+$filename = $smokeping_files[$direction][$device['hostname']][$vars['srv']];
+$source = $vars['srv'];
+if (!isset($config['graph_colours'][$colourset][$iter])) { $iter = 0; }
+$colour = $config['graph_colours'][$colourset][$iter];
+$iter++;
+
+$descr = rrdtool_escape($source, $descr_len);
+
+$rrd_options .= " DEF:median=".$filename.":median:AVERAGE ";
+$rrd_options .= " DEF:loss=".$filename.":loss:AVERAGE ";
+$rrd_options .= " CDEF:loss_rnd=loss,CEIL "; //NOT ALWAYS LOST PACKETS COUNT IS INTEGER... HI TOBI :)
+$rrd_options .= " CDEF:ploss=loss_rnd,".$pings.",/,100,* ";
+
+foreach (range(1, $pings) as $p)
+{
+ $rrd_options .= " DEF:ping".$p."=".$filename.":ping".$p.":AVERAGE ";
+ $rrd_options .= " CDEF:smoke_all".$p."=ping".$p.",median,- ";
+ $rrd_options .= " CDEF:smoke".$p."=5,median,*,smoke_all".$p.",GT,smoke_all".$p.",5,median,*,IF";
+ $rrd_options .= " LINE2:median#FFFFFF00:'' AREA:smoke".$p."#00000015:'':STACK ";
+}
+foreach (range(0, $pings) as $p)
+{
+ $rrd_options .= " CDEF:loss".$p."=loss_rnd,".$p.",EQ,median,UNKN,IF ";
+ $rrd_options .= " CDEF:loss".$p."_1=COUNT,2,%,0,EQ,loss".$p.",UNKN,IF ";
+ $rrd_options .= " CDEF:loss".$p."_2=COUNT,2,%,1,EQ,loss".$p.",UNKN,IF ";
+}
+
+$rrd_options .= " COMMENT:'Median RTT\: ' ";
+$rrd_options .= " GPRINT:median:AVERAGE:%6.2lf%ss ";
+$rrd_options .= " GPRINT:median:MIN:%6.2lf%ss ";
+$rrd_options .= " GPRINT:median:MAX:%6.2lf%ss ";
+$rrd_options .= " GPRINT:median:LAST:%6.2lf%ss\\l ";
+
+$rrd_options .= " COMMENT:'Packet loss\:' ";
+$rrd_options .= " GPRINT:loss_rnd:AVERAGE:%7.2lf%% ";
+$rrd_options .= " GPRINT:loss_rnd:MIN:%7.2lf%% ";
+$rrd_options .= " GPRINT:loss_rnd:MAX:%7.2lf%% ";
+$rrd_options .= " GPRINT:loss_rnd:LAST:%7.2lf%%\\l ";
+
+$rrd_options .= " COMMENT:'Loss colour\: ' ";
+
+$m = 0; //TO OPTIMIZE SEARCH OF COLOURS - E.G. DON'T TRY TO EVALUATE IF PACKETLOSS OF 0% COMES AFTER 10%
+$legended = array_fill(0, 12, 0);
+foreach (range(0, $pings) as $p)
+{
+ $ploss = ($p/$pings)*100;
+ $line_text = "";
+ foreach (range($m, count($config['smokeping']['loss_colour'])) as $k)
+ {
+ if ($ploss <= $config['smokeping']['loss_value'][$k])
+ {
+ $line_colour = $config['smokeping']['loss_colour'][$k];
+ if ($legended[$k] == 0)
+ {
+ if ($ploss > 0)
+ {
+ $line_text = ($config['smokeping']['loss_value'][$k-1] + 1)."..".$config['smokeping']['loss_value'][$k]."%";
+ } else {
+ $line_text = "0%";
+ }
+ $legended[$k] = 1;
+ }
+ $rrd_options .= " LINE2:loss".$p."_1#".$line_colour.":'".$line_text."' LINE2:loss".$p."_2#".$line_colour.":'' ";
+ $m = $k;
+ break;
+ }
+ }
+}
+$rrd_options .= " COMMENT:\\l ";
+
+//EOF
+
+
+
Index: html/includes/graphs/ping/smokeping_in_all.inc.php
===================================================================
--- html/includes/graphs/ping/smokeping_in_all.inc.php (revision 0)
+++ html/includes/graphs/ping/smokeping_in_all.inc.php (revision 11)
@@ -0,0 +1,18 @@
+Human translation:>
+
+$scale_min = 0;
+$scale_rigid = TRUE;
+
+include_once($config['html_dir']."/includes/graphs/common.inc.php");
+include("smokeping_common.inc.php");
+
+$i = 0;
+$pings = $config['smokeping_pings'];
+$iter = 0;
+$colourset = "mixed";
+
+if($width > "500")
+{
+ $descr_len = 25;
+} else {
+ $descr_len = 12 + round(($width - 275) / 8);
+}
+
+if($width > "500")
+{
+ $rrd_options .= " COMMENT:'".substr(str_pad($unit_text, $descr_len+5),0,$descr_len+5)." RTT Loss SDev RTT\:SDev\l'";
+} else {
+ $rrd_options .= " COMMENT:'".substr(str_pad($unit_text, $descr_len+5),0,$descr_len+5)." RTT Loss SDev RTT\:SDev\l'";
+}
+
+foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filename)
+{
+
+ if (!isset($config['graph_colours'][$colourset][$iter])) { $iter = 0; }
+ $colour = $config['graph_colours'][$colourset][$iter];
+ $iter++;
+
+ $descr = rrdtool_escape($source, $descr_len);
+
+ $rrd_options .= " DEF:median$i=".$filename.":median:AVERAGE ";
+ $rrd_options .= " DEF:loss$i=".$filename.":loss:AVERAGE";
+ $rrd_options .= " CDEF:ploss$i=loss$i,$pings,/,100,*";
+ $rrd_options .= " CDEF:dm$i=median$i";
+# $rrd_options .= " CDEF:dm$i=median$i,0,".$max->{$start}.",LIMIT";
+
+ // start emulate Smokeping::calc_stddev
+ foreach (range(1, $pings) as $p)
+ {
+ $rrd_options .= " DEF:pin".$i."p".$p."=".$filename.":ping".$p.":AVERAGE";
+ $rrd_options .= " CDEF:p".$i."p".$p."=pin".$i."p".$p.",UN,0,pin".$i."p".$p.",IF";
+ }
+
+ unset($pings_options, $m_options, $sdev_options);
+
+ foreach (range(2, $pings) as $p)
+ {
+ $pings_options .= ",p".$i."p".$p.",UN,+";
+ $m_options .= ",p".$i."p".$p.",+";
+ $sdev_options .= ",p".$i."p".$p.",m".$i.",-,DUP,*,+";
+ }
+
+ $rrd_options .= " CDEF:pings".$i."=".$pings .",p".$i."p1,UN". $pings_options . ",-";
+ $rrd_options .= " CDEF:m".$i."=p".$i."p1".$m_options.",pings".$i.",/";
+ $rrd_options .= " CDEF:sdev".$i."=p".$i."p1,m".$i.",-,DUP,*".$sdev_options.",pings".$i.",/,SQRT";
+ // end emulate Smokeping::calc_stddev
+
+ $rrd_options .= " CDEF:dmlow$i=dm$i,sdev$i,2,/,-";
+ $rrd_options .= " CDEF:s2d$i=sdev$i";
+ $rrd_options .= " AREA:dmlow$i";
+ $rrd_options .= " AREA:s2d$i#".$colour."30::STACK";
+ $rrd_options .= " LINE1:dm$i#".$colour.":'$descr'";
+
+# $rrd_options .= " LINE1:sdev$i#000000:$descr";
+
+ $rrd_options .= " VDEF:avmed$i=median$i,AVERAGE";
+ $rrd_options .= " VDEF:avsd$i=sdev$i,AVERAGE";
+ $rrd_options .= " CDEF:msr$i=median$i,POP,avmed$i,avsd$i,/";
+ $rrd_options .= " VDEF:avmsr$i=msr$i,AVERAGE";
+
+ $rrd_options .= " GPRINT:avmed$i:'%5.1lf%ss'";
+ $rrd_options .= " GPRINT:ploss$i:AVERAGE:'%5.1lf%%'";
+
+ $rrd_options .= " GPRINT:avsd$i:'%5.1lf%Ss'";
+ $rrd_options .= " GPRINT:avmsr$i:'%5.1lf%s\\l'";
+
+ $i++;
+}
+
+?>
Index: html/includes/graphs/ping/auth.inc.php
===================================================================
--- html/includes/graphs/ping/auth.inc.php (revision 0)
+++ html/includes/graphs/ping/auth.inc.php (revision 11)
@@ -0,0 +1,29 @@
+ $device['hostname'], 'url' => generate_url(array('page' => 'device', 'device' => $device['device_id'])));
+ $title_array[] = array('text' => 'Pings', 'url' => generate_url(array('page' => 'device', 'device' => $device['device_id'], 'tab' => 'latency')));
+
+ $smokeping_files = get_smokeping_files();
+ $smokeping_servers = get_smokeping_server_array($smokeping_files['outgoing']);
+
+ $device = device_by_id_cache($vars['device']);
+
+ $title = generate_device_link($device);
+ $auth = TRUE;
+}
+
+// EOF
Index: html/includes/functions.inc.php
===================================================================
--- html/includes/functions.inc.php (revision 3)
+++ html/includes/functions.inc.php (revision 11)
@@ -1602,43 +1602,58 @@
global $config;
$smokeping_files = array();
-
- if ($rdebug) { echo('- Recursing through ' . $config['smokeping']['dir'] . '
'); }
-
- if (is_dir($config['smokeping']['dir']))
+
+ foreach ($config['smokeping']['srv'] as $smokesrv)
{
- foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($config['smokeping']['dir'])) as $file)
+ if (is_dir($smokesrv['dir']))
{
- if (basename($file) != "." && basename($file) != ".." && strstr($file, ".rrd"))
+ if ($rdebug) { echo('- Recursing through ' . $smokesrv['dir'] . '
'); }
+ foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($smokesrv['dir'])) as $file)
{
- if ($rdebug) { echo('- Found file ending in ".rrd": ' . basename($file) . '
'); }
+ if (basename($file) != "." && basename($file) != ".." && strstr($file, ".rrd"))
+ {
+ if ($rdebug) { echo('- Found file ending in ".rrd": ' . basename($file) . '
'); }
- if (strstr($file, "~"))
- {
- list($target,$slave) = explode("~", basename($file,".rrd"));
- if ($rdebug) { echo('- Determined to be a slave file for target ' . $target . '
'); }
- $target = str_replace($config['smokeping']['split_char'], ".", $target);
- if ($config['smokeping']['suffix']) { $target = $target.$config['smokeping']['suffix']; if ($rdebug) { echo('- Suffix is configured, target is now ' . $target . '
'); } }
- $smokeping_files['incoming'][$target][$slave] = $file;
- $smokeping_files['outgoing'][$slave][$target] = $file;
- } else {
- $target = basename($file,".rrd");
- if ($rdebug) { echo('- Determined to be a local file, for target ' . $target . '
'); }
- $target = str_replace($config['smokeping']['split_char'], ".", $target);
- if ($rdebug) { echo('- After replacing configured split_char ' . $config['smokeping']['split_char'] . ' by . target is ' . $target . '
'); }
- if ($config['smokeping']['suffix']) { $target = $target.$config['smokeping']['suffix']; if ($rdebug) { echo('- Suffix is configured, target is now ' . $target . '
'); } }
- $smokeping_files['incoming'][$target][$config['own_hostname']] = $file;
- $smokeping_files['outgoing'][$config['own_hostname']][$target] = $file;
+ if (strstr($file, "~"))
+ {
+ list($target,$slave) = explode("~", basename($file,".rrd"));
+ if ($rdebug) { echo('- Determined to be a slave file for target ' . $target . '
'); }
+ $target = str_replace($config['smokeping']['split_char'], ".", $target);
+ if ($config['smokeping']['suffix']) { $target = $target.$config['smokeping']['suffix']; if ($rdebug) { echo('- Suffix is configured, target is now ' . $target . '
'); } }
+ $smokeping_files['incoming'][$target][$slave] = $file;
+ $smokeping_files['outgoing'][$slave][$target] = $file;
+ } else {
+ $target = basename($file,".rrd");
+ if ($rdebug) { echo('- Determined to be a local file, for target ' . $target . '
'); }
+ $target = str_replace($config['smokeping']['split_char'], ".", $target);
+ if ($rdebug) { echo('- After replacing configured split_char ' . $config['smokeping']['split_char'] . ' by . target is ' . $target . '
'); }
+ if ($config['smokeping']['suffix']) { $target = $target.$config['smokeping']['suffix']; if ($rdebug) { echo('- Suffix is configured, target is now ' . $target . '
'); } }
+ $smokeping_files['incoming'][$target][$smokesrv['hostname']] = $file;
+ $smokeping_files['outgoing'][$smokesrv['hostname']][$target] = $file;
+ }
}
}
+ } else {
+ if ($rdebug) { echo("- Smokeping RRD directory not found: " . $smokesrv['dir']); }
}
- } else {
- if ($rdebug) { echo("- Smokeping RRD directory not found: " . $config['smokeping']['dir']); }
}
-
return $smokeping_files;
}
+function get_smokeping_server_array($smokeping_server_list)
+{
+ global $device;
+
+ $smokeping_servers = array();
+
+ foreach ($smokeping_server_list as $server_name => $targets)
+ {
+ if (!(in_array($server_name, $smokeping_servers)) && array_key_exists($device['hostname'], $targets)) {$smokeping_servers[] = $server_name; }
+ }
+
+ return ($smokeping_servers);
+}
+
/**
* Darkens or lightens a colour
* Found via http://codepad.org/MTGLWVd0
Index: includes/defaults.inc.php
===================================================================
--- includes/defaults.inc.php (revision 3)
+++ includes/defaults.inc.php (revision 11)
@@ -375,10 +375,13 @@
#$config['collectd_dir'] = '/var/lib/collectd/rrd';
// Smokeping
-#$config['smokeping']['dir'] = "/var/lib/smokeping/";
$config['smokeping']['split_char'] = "_";
#$config['smokeping']['suffix'] = ".yourdomain.com";
#$config['smokeping']['slaves'][] = 'slave01'; // Used in the generate-smokeping script only
+#$config['smokeping']['srv'][] = array('dir' => '/var/lib/smokeping', 'hostname' => 'observium-dev');
+$config['smokeping']['loss_colour'] = array('55FF00', '00FFD5', '00D5FF', '00AAFF', '0080FF', '0055FF', '0000FF', '8000FF', 'D400FF', 'FF00D4', 'FF0080', 'FF0000');
+$config['smokeping']['loss_value'] = array(0, 2, 4, 6, 8, 10, 15, 20, 25, 40, 50, 100);
+$config['smokeping_pings'] = 20;
// NFSen RRD dir.
$config['nfsen_enable'] = 0;