mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Support MIB-based overrides in processor & memory pools
This commit is contained in:
@@ -4,8 +4,16 @@ $graph_type = 'mempool_usage';
|
||||
|
||||
$i = '1';
|
||||
|
||||
if (count_mib_mempools($device) > 0) {
|
||||
$mempools = get_mib_mempools($device);
|
||||
$graph_type = 'device_mempool';
|
||||
}
|
||||
else {
|
||||
$mempools = dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($device['device_id']));
|
||||
}
|
||||
|
||||
// FIXME css alternating colours
|
||||
foreach (dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($device['device_id'])) as $mempool) {
|
||||
foreach ($mempools as $mempool) {
|
||||
if (!is_integer($i / 2)) {
|
||||
$row_colour = $list_colour_a;
|
||||
}
|
||||
@@ -15,30 +23,49 @@ foreach (dbFetchRows('SELECT * FROM `mempools` WHERE device_id = ?', array($devi
|
||||
|
||||
$text_descr = rewrite_entity_descr($mempool['mempool_descr']);
|
||||
|
||||
$mempool_url = 'graphs/id='.$mempool['mempool_id'].'/type=mempool_usage/';
|
||||
$mini_url = 'graph.php?id='.$mempool['mempool_id'].'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'].'&width=80&height=20&bg=f4f4f4';
|
||||
if ($graph_type == 'device_mempool') {
|
||||
$id = 'device';
|
||||
$val = $device['device_id'];
|
||||
}
|
||||
else {
|
||||
$id = 'id';
|
||||
$val = $mempool['mempool_id'];
|
||||
}
|
||||
$mempool_url = 'graphs/'.$id.'='.$val.'/type='.$graph_type.'/';
|
||||
$mini_url = 'graph.php?'.$id.'='.$val.'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'].'&width=80&height=20&bg=f4f4f4';
|
||||
|
||||
$mempool_popup = "onmouseover=\"return overlib('<div class=list-large>".$device['hostname'].' - '.$text_descr;
|
||||
$mempool_popup .= "</div><img src=\'graph.php?id=".$mempool['mempool_id'].'&type='.$graph_type.'&from='.$config['time']['month'].'&to='.$config['time']['now']."&width=400&height=125\'>";
|
||||
$mempool_popup .= "</div><img src=\'graph.php?'.$id.'=".$val.'&type='.$graph_type.'&from='.$config['time']['month'].'&to='.$config['time']['now']."&width=400&height=125\'>";
|
||||
$mempool_popup .= "', RIGHT".$config['overlib_defaults'].');" onmouseout="return nd();"';
|
||||
|
||||
$total = formatStorage($mempool['mempool_total']);
|
||||
$used = formatStorage($mempool['mempool_used']);
|
||||
$free = formatStorage($mempool['mempool_free']);
|
||||
|
||||
$perc = round(($mempool['mempool_used'] / $mempool['mempool_total'] * 100));
|
||||
// don't bother recalculating if mempools use percentage
|
||||
if ($mempool['percentage'] === true) {
|
||||
$perc = round($mempool['mempool_used']);
|
||||
}
|
||||
else {
|
||||
$perc = round(($mempool['mempool_used'] / $mempool['mempool_total'] * 100));
|
||||
}
|
||||
|
||||
$background = get_percentage_colours($percent);
|
||||
$right_background = $background['right'];
|
||||
$left_background = $background['left'];
|
||||
|
||||
$graph_array['id'] = $mempool['mempool_id'];
|
||||
$graph_array[$id] = $val;
|
||||
$graph_array['type'] = $graph_type;
|
||||
|
||||
echo "<div class='panel panel-default'>
|
||||
<div class='panel-heading'>
|
||||
<h3 class='panel-title'>$text_descr <div class='pull-right'>$used/$total - $perc% used</div></h3>
|
||||
</div>";
|
||||
<div class='panel-heading'>";
|
||||
if ($mempool['percentage'] === true) {
|
||||
echo " <h3 class='panel-title'>$text_descr <div class='pull-right'>$perc% used</div></h3>";
|
||||
}
|
||||
else {
|
||||
echo " <h3 class='panel-title'>$text_descr <div class='pull-right'>$used/$total - $perc% used</div></h3>";
|
||||
}
|
||||
echo " </div>";
|
||||
echo "<div class='panel-body'>";
|
||||
include 'includes/print-graphrow.inc.php';
|
||||
echo "</div></div>";
|
||||
|
||||
@@ -3,21 +3,36 @@
|
||||
$graph_type = 'processor_usage';
|
||||
|
||||
$i = '1';
|
||||
foreach (dbFetchRows('SELECT * FROM `processors` WHERE device_id = ?', array($device['device_id'])) as $proc) {
|
||||
$proc_url = 'graphs/id='.$proc['processor_id'].'/type=processor_usage/';
|
||||
|
||||
$mini_url = 'graph.php?id='.$proc['processor_id'].'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'].'&width=80&height=20&bg=f4f4f4';
|
||||
if (count_mib_processors($device) > 0) {
|
||||
$processors = get_mib_processors($device);
|
||||
$graph_type = 'device_processor';
|
||||
}
|
||||
else {
|
||||
$processors = dbFetchRows('SELECT * FROM `processors` WHERE device_id = ?', array($device['device_id']));
|
||||
}
|
||||
|
||||
$text_descr = $proc['processor_descr'];
|
||||
foreach ($processors as $proc) {
|
||||
if ($graph_type == 'device_processor') {
|
||||
$id = 'device';
|
||||
$val = $device['device_id'];
|
||||
}
|
||||
else {
|
||||
$id = 'id';
|
||||
$val = $proc['processor_id'];
|
||||
}
|
||||
$proc_url = 'graphs/'.$id.'='.$val.'/type='.$graph_type.'/';
|
||||
$base_url = 'graph.php?'.$id.'='.$val.'&type='.$graph_type.'&from='.$config['time']['day'].'&to='.$config['time']['now'];
|
||||
$mini_url = $base_url.'&width=80&height=20&bg=f4f4f4';
|
||||
|
||||
$text_descr = rewrite_entity_descr($text_descr);
|
||||
$text_descr = rewrite_entity_descr($proc['processor_descr']);
|
||||
|
||||
$proc_popup = "onmouseover=\"return overlib('<div class=list-large>".$device['hostname'].' - '.$text_descr;
|
||||
$proc_popup .= "</div><img src=\'graph.php?id=".$proc['processor_id'].'&type='.$graph_type.'&from='.$config['time']['month'].'&to='.$config['time']['now']."&width=400&height=125\'>";
|
||||
$proc_popup .= "</div><img src=\'".$base_url."&width=400&height=125\'>";
|
||||
$proc_popup .= "', RIGHT".$config['overlib_defaults'].');" onmouseout="return nd();"';
|
||||
$percent = round($proc['processor_usage']);
|
||||
|
||||
$graph_array['id'] = $proc['processor_id'];
|
||||
$graph_array[$id] = $val;
|
||||
$graph_array['type'] = $graph_type;
|
||||
|
||||
echo "<div class='panel panel-default'>
|
||||
@@ -27,4 +42,4 @@ foreach (dbFetchRows('SELECT * FROM `processors` WHERE device_id = ?', array($de
|
||||
echo "<div class='panel-body'>";
|
||||
include 'includes/print-graphrow.inc.php';
|
||||
echo "</div></div>";
|
||||
}//end foreach
|
||||
}//end foreach
|
||||
|
||||
@@ -767,8 +767,54 @@ function count_mib_health($device)
|
||||
} // count_mib_health
|
||||
|
||||
|
||||
function get_mibval($device, $oid)
|
||||
{
|
||||
$sql = 'SELECT * FROM `device_oids` WHERE `device_id` = ? AND `oid` = ?';
|
||||
return dbFetchRow($sql, array($device['device_id'], $oid));
|
||||
} // get_mibval
|
||||
|
||||
|
||||
/*
|
||||
* FIXME: Dummy implementation
|
||||
* FIXME: Dummy implementation - needs an abstraction for each device
|
||||
*/
|
||||
function get_mib_mempools($device)
|
||||
{
|
||||
$mempools = array();
|
||||
if ($device['os'] == 'ruckuswireless') {
|
||||
$mempool = array();
|
||||
$mibvals = get_mibval($device, '.1.3.6.1.4.1.25053.1.2.1.1.1.15.14.0');
|
||||
$mempool['mempool_descr'] = $mibvals['object_type'];
|
||||
$mempool['mempool_id'] = 0;
|
||||
$mempool['mempool_total'] = 100;
|
||||
$mempool['mempool_used'] = $mibvals['numvalue'];
|
||||
$mempool['mempool_free'] = 100 - $mibvals['numvalue'];
|
||||
$mempool['percentage'] = true;
|
||||
$mempools[] = $mempool;
|
||||
}
|
||||
return $mempools;
|
||||
} // get_mib_mempools
|
||||
|
||||
|
||||
/*
|
||||
* FIXME: Dummy implementation - needs an abstraction for each device
|
||||
*/
|
||||
function get_mib_processors($device)
|
||||
{
|
||||
$processors = array();
|
||||
if ($device['os'] == 'ruckuswireless') {
|
||||
$proc = array();
|
||||
$mibvals = get_mibval($device, '.1.3.6.1.4.1.25053.1.2.1.1.1.15.13.0');
|
||||
$proc['processor_descr'] = $mibvals['object_type'];
|
||||
$proc['processor_id'] = 0;
|
||||
$proc['processor_usage'] = $mibvals['numvalue'];
|
||||
$processors[] = $proc;
|
||||
}
|
||||
return $processors;
|
||||
} // get_mib_processors
|
||||
|
||||
|
||||
/*
|
||||
* FIXME: Dummy implementation - needs an abstraction for each device
|
||||
* @return true if there is a custom graph defined for this type, subtype, and device
|
||||
*/
|
||||
function is_custom_graph($type, $subtype, $device)
|
||||
|
||||
Reference in New Issue
Block a user