1<?php 2 3/** 4 * Observium 5 * 6 * This file is part of Observium. 7 * 8 * @package observium 9 * @subpackage discovery 10 * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited 11 * 12 */ 13 14// DELL-NETWORKING-CHASSIS-MIB::dellNetCpuUtilMemUsage.stack.1.1 = Gauge32: 41 percent 15// DELL-NETWORKING-CHASSIS-MIB::dellNetProcessorMemSize.stack.1.1 = INTEGER: 2029 16 17$mempool_array = snmpwalk_cache_threepart_oid($device, 'dellNetCpuUtilMemUsage', array(), $mib, NULL, OBS_SNMP_ALL_NUMERIC_INDEX); 18if (is_array($mempool_array)) 19{ 20 $mempool_array = snmpwalk_cache_threepart_oid($device, 'dellNetProcessorMemSize', $mempool_array, $mib, NULL, OBS_SNMP_ALL_NUMERIC_INDEX); 21 if (OBS_DEBUG > 1 && count($mempool_array)) { print_vars($mempool_array); } 22 23 foreach ($mempool_array as $type => $entry1) 24 { 25 // Hrm, this is possible for multiple types? 26 $first_unit = array_shift(array_keys($entry1)); 27 foreach ($entry1 as $unit => $entry2) 28 { 29 $mempool_count = count($entry2); 30 foreach ($entry2 as $mempool => $entry) 31 { 32 $index = "{$type}.{$unit}.{$mempool}"; 33 $dot_index = ".{$index}"; 34 $descr = 'Unit ' . strval($unit - $first_unit); 35 if ($mempool_count > 1) 36 { 37 $descr .= " Memory {$mempool}"; 38 } 39 40 $oid_table = 'dellNetCpuUtilTable'; 41 $oid_name = 'dellNetCpuUtilMemUsage'; 42 $precision = 1024 * 1024; 43 $total = $entry['dellNetProcessorMemSize']; 44 $percent = $entry['dellNetCpuUtilMemUsage']; 45 $used = $total * $percent / 100; 46 47 discover_mempool($valid['mempool'], $device, $index, $mib, $descr, $precision, $total, $used); 48 } 49 } 50 } 51} 52 53unset ($mempool_array, $index, $descr, $precision, $total, $used, $percent); 54 55// EOF 56