Merge pull request #1407 from laf/smokeping

Smokeping improvement + script to generate config
This commit is contained in:
Paul Gear
2015-07-26 14:21:29 +10:00
10 changed files with 139 additions and 58 deletions

View File

@@ -38,7 +38,7 @@ foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filena
$descr = rrdtool_escape($source, $descr_len);
$filename = $config['smokeping']['dir'].$filename;
$filename = generate_smokeping_file($device,$filename);
$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,*";

View File

@@ -39,7 +39,7 @@ foreach ($smokeping_files[$direction][$device['hostname']] as $source => $filena
$descr = rrdtool_escape($source, $descr_len);
$filename = $config['smokeping']['dir'].$filename;
$filename = generate_smokeping_file($device,$filename);
$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';

View File

@@ -1,25 +1,3 @@
<?php
if (isset($config['smokeping']['dir'])) {
$smokeping_files = array();
if ($handle = opendir($config['smokeping']['dir'])) {
while (false !== ($file = readdir($handle))) {
if ($file != '.' && $file != '..') {
if (eregi('.rrd', $file)) {
if (eregi('~', $file)) {
list($target,$slave) = explode('~', str_replace('.rrd', '', $file));
$target = str_replace('_', '.', $target);
$smokeping_files['in'][$target][$slave] = $file;
$smokeping_files['out'][$slave][$target] = $file;
}
else {
$target = str_replace('.rrd', '', $file);
$target = str_replace('_', '.', $target);
$smokeping_files['in'][$target][$config['own_hostname']] = $file;
$smokeping_files['out'][$config['own_hostname']][$target] = $file;
}
}
}
}
}
}
$smokeping_files = get_smokeping_files($device);

View File

@@ -1,7 +1,7 @@
<?php
if (is_numeric($vars['id']) && ($auth || device_permitted($vars['id']))) {
$device = device_by_id_cache($vars['id']);
if (is_numeric($vars['device']) && ($auth || device_permitted($vars['src']))) {
$device = device_by_id_cache($vars['device']);
$title = generate_device_link($device);
$graph_title = $device['hostname'];
$auth = true;

View File

@@ -30,18 +30,19 @@ else {
$rrd_options .= " COMMENT:'".substr(str_pad($unit_text, ($descr_len + 5)), 0, ($descr_len + 5))." RTT Loss SDev RTT\:SDev \l'";
}
$filename_dir = generate_smokeping_file($device);
if ($src['hostname'] == $config['own_hostname']) {
$filename = $config['smokeping']['dir'].$device['hostname'].'.rrd';
if (!file_exists($filename)) {
$filename = $filename_dir . $device['hostname'].'.rrd';
if (!file_exists($filename_dir.$device['hostname'].'.rrd')) {
// Try with dots in hostname replaced by underscores
$filename = $config['smokeping']['dir'].str_replace('.', '_', $device['hostname']).'.rrd';
$filename = $filename_dir . str_replace('.', '_', $device['hostname']).'.rrd';
}
}
else {
$filename = $config['smokeping']['dir'].$device['hostname'].'~'.$src['hostname'].'.rrd';
$filename = $filename_dir . $device['hostname'] .'~'.$src['hostname'].'.rrd';
if (!file_exists($filename)) {
// Try with dots in hostname replaced by underscores
$filename = $config['smokeping']['dir'].str_replace('.', '-', $device['hostname']).'~'.$src['hostname'].'.rrd';
$filename = $filename_dir . str_replace('.', '-', $device['hostname']) .'~'.$src['hostname'].'.rrd';
}
}