mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
rrdtune code
This commit is contained in:
@@ -54,17 +54,22 @@ foreach (dbFetchRows($sql, $param) as $port) {
|
||||
$isportbad = ($port['ifOperStatus'] == 'down' && $port['ifAdminStatus'] != 'down') ? 1 : 0;
|
||||
$dowecare = ($port['ignore'] == 0 && $port['disabled'] == 0) ? $isportbad : !$isportbad;
|
||||
$outofsync = $dowecare ? " class='red'" : '';
|
||||
$checked = '';
|
||||
if (get_dev_attrib($device_id, 'ifName_tune:'.$port['ifName']) == "true") {
|
||||
$checked = 'checked';
|
||||
}
|
||||
|
||||
$response[] = array(
|
||||
'ifIndex' => $port['ifIndex'],
|
||||
'ifName' => $port['label'],
|
||||
'ifAdminStatus' => $port['ifAdminStatus'],
|
||||
'ifOperStatus' => '<span name="operstatus_'.$port['port_id'].'"'.$outofsync.'>'.$port['ifOperStatus'].'</span>',
|
||||
'disabled' => '<input type="checkbox" class="disable-check" name="disabled_'.$port['port_id'].'"'.($port['disabled'] ? 'checked' : '').'>
|
||||
<input type="hidden" name="olddis_'.$port['port_id'].'" value="'.($port['disabled'] ? 1 : 0).'"">',
|
||||
'ignore' => '<input type="checkbox" class="ignore-check" name="ignore_'.$port['port_id'].'"'.($port['ignore'] ? 'checked' : '').'>
|
||||
<input type="hidden" name="oldign_'.$port['port_id'].'" value="'.($port['ignore'] ? 1 : 0).'"">',
|
||||
'ifAlias' => '<div class="form-group"><input class="form-control input-sm" id="if-alias" name="if-alias" data-device_id="'.$port['device_id'].'" data-port_id="'.$port['port_id'].'" data-ifName="'.$port['ifName'].'" value="'.$port['ifAlias'].'"><span class="glyphicon form-control-feedback" aria-hidden="true"></span></div>'
|
||||
'ifIndex' => $port['ifIndex'],
|
||||
'ifName' => $port['label'],
|
||||
'ifAdminStatus' => $port['ifAdminStatus'],
|
||||
'ifOperStatus' => '<span name="operstatus_'.$port['port_id'].'"'.$outofsync.'>'.$port['ifOperStatus'].'</span>',
|
||||
'disabled' => '<input type="checkbox" class="disable-check" name="disabled_'.$port['port_id'].'"'.($port['disabled'] ? 'checked' : '').'>
|
||||
<input type="hidden" name="olddis_'.$port['port_id'].'" value="'.($port['disabled'] ? 1 : 0).'"">',
|
||||
'ignore' => '<input type="checkbox" class="ignore-check" name="ignore_'.$port['port_id'].'"'.($port['ignore'] ? 'checked' : '').'>
|
||||
<input type="hidden" name="oldign_'.$port['port_id'].'" value="'.($port['ignore'] ? 1 : 0).'"">',
|
||||
'port_tune' => '<input type="checkbox" id="override_config" name="override_config" data-attrib="ifName_tune:'.$port['ifName'].'" data-device_id="'.$port['device_id'].'" data-size="small" '.$checked.'>',
|
||||
'ifAlias' => '<div class="form-group"><input class="form-control input-sm" id="if-alias" name="if-alias" data-device_id="'.$port['device_id'].'" data-port_id="'.$port['port_id'].'" data-ifName="'.$port['ifName'].'" value="'.$port['ifAlias'].'"><span class="glyphicon form-control-feedback" aria-hidden="true"></span></div>',
|
||||
);
|
||||
|
||||
}//end foreach
|
||||
|
@@ -5,7 +5,7 @@
|
||||
<input type='hidden' name='ignoreport' value='yes'>
|
||||
<input type='hidden' name='type' value='update-ports'>
|
||||
<input type='hidden' name='device' value='<?php echo $device['device_id'];?>'>
|
||||
<div class='table-responsibe'>
|
||||
<div class='table-responsive'>
|
||||
<table id='edit-ports' class='table table-striped'>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -15,6 +15,7 @@
|
||||
<th data-column-id='ifOperStatus'>Oper</th>
|
||||
<th data-column-id='disabled' data-sortable='false'>Disable</th>
|
||||
<th data-column-id='ignore' data-sortable='false'>Ignore</th>
|
||||
<th data-column-id='port_tune' data-sortable='false' data-searchable='false'>RRD Tune</th>
|
||||
<th data-column-id='ifAlias'>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -23,6 +24,7 @@
|
||||
</form>
|
||||
<script>
|
||||
|
||||
//$("[name='override_config']").bootstrapSwitch('offColor','danger');
|
||||
$(document).on('blur', "[name='if-alias']", function (){
|
||||
var $this = $(this);
|
||||
var descr = $this.val();
|
||||
@@ -153,5 +155,10 @@
|
||||
};
|
||||
},
|
||||
url: "ajax_table.php"
|
||||
}).on("loaded.rs.jquery.bootgrid", function() {
|
||||
$("[name='override_config']").bootstrapSwitch('offColor','danger');
|
||||
$('input[name="override_config"]').on('switchChange.bootstrapSwitch', function(event, state) {
|
||||
override_config(event,state,$(this));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
@@ -315,6 +315,7 @@ foreach ($ports as $port) {
|
||||
}
|
||||
|
||||
// Update IF-MIB data
|
||||
$tune_port = false;
|
||||
foreach ($data_oids as $oid) {
|
||||
|
||||
if ($oid == 'ifAlias') {
|
||||
@@ -334,6 +335,15 @@ foreach ($ports as $port) {
|
||||
}
|
||||
}
|
||||
else if ($port[$oid] != $this_port[$oid]) {
|
||||
$port_tune = get_dev_attrib($device, 'ifName_tune:'.$port['ifName']);
|
||||
$device_tune = get_dev_attrib($device,'device_rrdtool_tune');
|
||||
if ($port_tune == "true" ||
|
||||
($device_tune == "true" && $port_tune != 'false') ||
|
||||
($config['rrdtool']['tune'] == "true" && $port_tune != 'false' && $device_tune != 'false')) {
|
||||
if ($oid == 'ifSpeed') {
|
||||
$tune_port = true;
|
||||
}
|
||||
}
|
||||
$port['update'][$oid] = $this_port[$oid];
|
||||
log_event($oid.': '.$port[$oid].' -> '.$this_port[$oid], $device, 'interface', $port['port_id']);
|
||||
if ($debug) {
|
||||
@@ -477,6 +487,9 @@ foreach ($ports as $port) {
|
||||
'OUTMULTICASTPKTS' => $this_port['ifOutMulticastPkts'],
|
||||
);
|
||||
|
||||
if ($tune_port === true) {
|
||||
rrdtool_tune('port',$rrdfile,$this_port['ifSpeed']);
|
||||
}
|
||||
rrdtool_update("$rrdfile", $fields);
|
||||
// End Update IF-MIB
|
||||
// Update PAgP
|
||||
|
@@ -166,7 +166,7 @@ function rrdtool_graph($graph_file, $options) {
|
||||
function rrdtool($command, $filename, $options) {
|
||||
global $config, $debug, $rrd_pipes, $console_color;
|
||||
|
||||
if ($config['rrdcached'] && ($config['rrdtool_version'] >= 1.5 || $command != "create")) {
|
||||
if ($config['rrdcached'] && ($config['rrdtool_version'] >= 1.5 || ($command != "create" && $command != 'tune'))) {
|
||||
if (isset($config['rrdcached_dir']) && $config['rrdcached_dir'] !== false) {
|
||||
$filename = str_replace($config['rrd_dir'].'/', './'.$config['rrdcached_dir'].'/', $filename);
|
||||
$filename = str_replace($config['rrd_dir'], './'.$config['rrdcached_dir'].'/', $filename);
|
||||
@@ -294,3 +294,17 @@ function rrdtool_escape($string, $maxlength=null){
|
||||
return $result.' ';
|
||||
|
||||
}
|
||||
|
||||
function rrdtool_tune($type, $filename, $max) {
|
||||
if ($type === 'port') {
|
||||
if ($max < 10000000) {
|
||||
return false;
|
||||
}
|
||||
$max = $max / 8;
|
||||
$fields = array(
|
||||
'INOCTETS','OUTOCTETS','INERRORS','OUTERRORS','INUCASTPKTS','OUTUCASTPKTS','INNUCASTPKTS','OUTNUCASTPKTS','INDISCARDS','OUTDISCARDS','INUNKNOWNPROTOS','INBROADCASTPKTS','OUTBROADCASTPKTS','INMULTICASTPKTS','OUTMULTICASTPKTS'
|
||||
);
|
||||
$options = "--maxium " . implode(":$max --maximum ", $fields). ":$max";
|
||||
rrdtool('tune', $filename, $options);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user