Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve VRP stack state discovery with one member only to avoid unnecessary alarms #9925

Merged
merged 3 commits into from Mar 13, 2019
Merged
Changes from 2 commits
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

@@ -21,6 +21,7 @@ modules:
data:
- oid:
- entPhysicalName
- hwStackPortTable
temperature:
data:
-
@@ -156,14 +157,4 @@ modules:
- { descr: Master, graph: 1, value: 1, generic: 0 }
- { descr: Standby, graph: 1, value: 2, generic: 0 }
- { descr: Slave, graph: 1, value: 3, generic: 0 }
-
oid: hwStackPortTable
value: hwStackPortStatus
num_oid: '.1.3.6.1.4.1.2011.5.25.183.1.21.1.5.{{ $index }}'
descr: 'Stack Port {{ $index }} Status'
group: Stack
state_name: hwStackPortStatus
states:
- { descr: Up, graph: 1, value: 1, generic: 0 }
- { descr: Down, graph: 1, value: 2, generic: 2 }

@@ -0,0 +1,58 @@
<?php
/**
* vrp.inc.php
*
* LibreNMS sensors state discovery module for HP Procurve
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2019 PipoCanaja
* @author PipoCanaja
*/
//d_echo($pre_cache);

Check notice on line 26 in includes/discovery/sensors/state/vrp.inc.php

Scrutinizer / Inspection

includes/discovery/sensors/state/vrp.inc.php#L26

``80%`` of this comment could be valid code. Did you maybe forget this after debugging?
This conversation was marked as resolved by PipoCanaja

This comment has been minimized.

Copy link
@murrant

murrant Mar 12, 2019

Member

Looks good, you just need to remove this commented debug code :)

This comment has been minimized.

Copy link
@PipoCanaja

PipoCanaja Mar 12, 2019

Author Contributor

missed them :( done now :D

//exit;

Check notice on line 28 in includes/discovery/sensors/state/vrp.inc.php

Scrutinizer / Inspection

includes/discovery/sensors/state/vrp.inc.php#L28

``100%`` of this comment could be valid code. Did you maybe forget this after debugging?
$stacked_device = count(array_keys($pre_cache['hwStackMemberInfoTable']));
// If we have more than 1 device in the stack, then we should alert on stack ports not up
if ($stacked_device > 1) {
$state_name = "hwStackPortStatus";
$states = [
['value' => 1, 'generic' => 0, 'graph' => 0, 'descr' => 'Up'],
['value' => 2, 'generic' => 2, 'graph' => 0, 'descr' => 'Down'],
];
} else {
$state_name = "hwStackPortStatusNotStacked";
$states = [
['value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'Up'],
['value' => 2, 'generic' => 3, 'graph' => 0, 'descr' => 'Down'],
];
}
foreach ($pre_cache['hwStackPortTable'] as $index => $data) {
$subindex = explode('.', $index);
$state_oid = '.1.3.6.1.4.1.2011.5.25.183.1.21.1.5.' . $index;
$state_descr = "Unit " . $subindex[0] . " stack-port " . $subindex[1] . " Status";
$state = $data['hwStackPortStatus'];
$state_index = $index;
create_state_index($state_name, $states);
discover_sensor($valid['sensor'], 'state', $device, $state_oid, $state_index, $state_name, $state_descr, '1', '1', null, null, null, null, $state, 'snmp', null, null, null, 'Stack');
create_sensor_to_state_index($device, $state_name, $state_index);
}
"sensor_oid": ".1.3.6.1.4.1.2011.5.25.183.1.21.1.5.1.0",
"sensor_index": "1.0",
"sensor_type": "hwStackPortStatus",
"sensor_descr": "Stack Port 1.0 Status",
"sensor_descr": "Unit 1 stack-port 0 Status",
"group": "Stack",
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_oid": ".1.3.6.1.4.1.2011.5.25.183.1.21.1.5.1.1",
"sensor_index": "1.1",
"sensor_type": "hwStackPortStatus",
"sensor_descr": "Stack Port 1.1 Status",
"sensor_descr": "Unit 1 stack-port 1 Status",
"group": "Stack",
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_oid": ".1.3.6.1.4.1.2011.5.25.183.1.21.1.5.2.0",
"sensor_index": "2.0",
"sensor_type": "hwStackPortStatus",
"sensor_descr": "Stack Port 2.0 Status",
"sensor_descr": "Unit 2 stack-port 0 Status",
"group": "Stack",
"sensor_divisor": 1,
"sensor_multiplier": 1,
"sensor_oid": ".1.3.6.1.4.1.2011.5.25.183.1.21.1.5.2.1",
"sensor_index": "2.1",
"sensor_type": "hwStackPortStatus",
"sensor_descr": "Stack Port 2.1 Status",
"sensor_descr": "Unit 2 stack-port 1 Status",
"group": "Stack",
"sensor_divisor": 1,
"sensor_multiplier": 1,
{
"state_name": "hwStackPortStatus",
"state_descr": "Up",
"state_draw_graph": 1,
"state_draw_graph": 0,
"state_value": 1,
"state_generic_value": 0
},
{
"state_name": "hwStackPortStatus",
"state_descr": "Down",
"state_draw_graph": 1,
"state_draw_graph": 0,
"state_value": 2,
"state_generic_value": 2
}
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.