47 lines
1.9 KiB
PHP
47 lines
1.9 KiB
PHP
<?php
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage discovery
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
// FIXME. UCD-CPU already polled by ucd-mib poller
|
|
//$count_processors = dbFetchCell("SELECT COUNT(*) FROM `processors` WHERE `device_id` = ? AND `processor_type` != ?", array($device['device_id'], 'ucd-old'));
|
|
|
|
//if ($device['os_group'] == 'unix' && $count == 0)
|
|
//if ($count_processors == 0)
|
|
if (dbExist('processors', '`device_id` = ? AND `processor_type` NOT IN (?, ?)', [ $device['device_id'], 'ucd-cpu', 'ucd-raw' ])) {
|
|
print_debug("Skip UCD CPU. Already exist better processor(s)");
|
|
return;
|
|
}
|
|
|
|
if ($ss = snmp_get_multi_oid($device, 'ssCpuIdle.0 ssCpuSystem.0 ssCpuUser.0 ssCpuRawIdle.0 ssCpuRawSystem.0', [], $mib)) {
|
|
$ss = $ss[0];
|
|
|
|
// Note. ssCpuIdle is deprecated, needs to use ssCpuRawIdle, but it's a COUNTER
|
|
if (is_numeric($ss['ssCpuIdle']) &&
|
|
($ss['ssCpuIdle'] + $ss['ssCpuSystem'] + $ss['ssCpuUser']) > 0) {
|
|
//$percent = $system + $user + $idle;
|
|
discover_processor($valid['processor'], $device, 0, 0, 'ucd-old', 'CPU', 1, $ss['ssCpuIdle'], NULL, NULL, 1);
|
|
} elseif (is_numeric($ss['ssCpuRawIdle']) &&
|
|
($ss['ssCpuRawIdle'] + $ss['ssCpuRawSystem']) > 0) {
|
|
|
|
print_debug_vars($ss);
|
|
// Warning. This is counter, please do not pass raw value. Poller calculates value from previous
|
|
// Still required for a device who does not support HOST-RESOURCES-MIB but ignores simple ssCpuIdle
|
|
if (($processor_id = discover_processor($valid['processor'], $device, 0, 0, 'ucd-raw', 'CPU', 1, 100, NULL, NULL, 1)) &&
|
|
empty(get_entity_attrib('processor', $processor_id, 'value-raw'))) {
|
|
|
|
// store initial raw value for next poll
|
|
set_entity_attrib('processor', $processor_id, 'value-raw', $ss['ssCpuRawIdle']);
|
|
}
|
|
}
|
|
}
|
|
|
|
// EOF
|