'device_poller_perf', 'device' => $device['device_id'] ]; echo generate_box_open(array('title' => 'Poller Performance')); print_graph_row($graph_array); echo generate_box_close(); $sql = "SELECT `process_command`, `process_name`, `process_start`, `poller_id` FROM `observium_processes` WHERE `device_id` = ? ORDER BY `process_ppid`, `process_start`"; if ($processes = dbFetchRows($sql, [ $device['device_id'] ])) { echo generate_box_open(array('title' => 'Running Processes')); $cols = [ //'Process ID', 'PID', 'PPID', 'UID', 'Command', 'Name', 'Started', 'Poller ID' //'Device' ]; echo build_table($processes, [ 'columns' => $cols, 'process_start' => 'unixtime' ]); echo generate_box_close(); } $navbar = array('brand' => "Performance", 'class' => "navbar-narrow"); $navbar['options']['overview']['text'] = 'Overview'; $navbar['options']['poller']['text'] = 'Poller Modules'; $navbar['options']['memory']['text'] = 'Poller Memory'; $navbar['options']['snmp']['text'] = 'Poller SNMP'; $navbar['options']['db']['text'] = 'Poller DB'; foreach ($navbar['options'] as $option => $array) { if (!isset($vars['view'])) { $vars['view'] = "overview"; } if ($vars['view'] == $option) { $navbar['options'][$option]['class'] .= " active"; } $navbar['options'][$option]['url'] = generate_url($vars, array('view' => $option)); } print_navbar($navbar); unset($navbar); if (is_array($device['state']['poller_mod_perf'])) { arsort($device['state']['poller_mod_perf']); } if (is_array($device['state']['discovery_mod_perf'])) { arsort($device['state']['discovery_mod_perf']); } if ($vars['view'] === 'db') { echo generate_box_open(); echo '' . PHP_EOL; foreach (array('device_pollerdb_count' => 'MySQL Operations', 'device_pollerdb_times' => 'MySQL Times') as $graphtype => $name) { echo ''; echo ''; } echo '

'.$name.'

'; $graph = array('type' => $graphtype, 'device' => $device['device_id']); print_graph_row($graph); echo '
'; echo generate_box_close(); } elseif ($vars['view'] === 'snmp') { echo generate_box_open(); echo '' . PHP_EOL; foreach (array('device_pollersnmp_count' => 'SNMP Requests', 'device_pollersnmp_times' => 'SNMP Times', 'device_pollersnmp_errors_count' => 'SNMP Errors', 'device_pollersnmp_errors_times' => 'SNMP Errors Times') as $graphtype => $name) { echo ''; echo ''; } echo '

'.$name.'

'; $graph = array('type' => $graphtype, 'device' => $device['device_id']); print_graph_row($graph); echo '
'; echo generate_box_close(); } elseif ($vars['view'] === 'memory') { echo generate_box_open(); echo '' . PHP_EOL; echo ''; echo ''; echo '

Memory usage

'; $graph = array('type' => 'device_pollermemory_perf', 'device' => $device['device_id']); print_graph_row($graph); echo '
'; echo generate_box_close(); } elseif ($vars['view'] === 'poller') { echo generate_box_open(); echo '' . PHP_EOL; foreach ($device['state']['poller_mod_perf'] as $module => $time) { echo ''; echo ''; } echo '

'.$module.'

'.$time.'s
'; $graph = array('type' => 'device_pollermodule_perf', 'device' => $device['device_id'], 'module' => $module); print_graph_row($graph); echo '
'; echo generate_box_close(); } else { ?>

Poller Module Times

$time) { if ($time > 0.001) { $perc = round(float_div($time, $device['last_polled_timetaken']) * 100, 2, 2); echo(' '); // Separate sub-module perf (ie ports) foreach ($device['state']['poller_'.$module.'_perf'] as $submodule => $subtime) { echo(' '); } } } ?>
Module Duration
'.$module.' '.number_format($time, 4).'s '.$perc.'%
 '.$submodule.' '.number_format($subtime, 4).'s

Poller Times

$duration) { echo(' '); } ?>
Time
'.generate_tooltip_time($start, 'ago').' '.format_uptime($duration).'

Discovery Module Times

$time) { if ($time > 0.001) { $perc = round(float_div($time, $device['last_discovered_timetaken']) * 100, 2, 2); echo(' '); // Separate sub-module perf (ie ports) foreach ($device['state']['discovery_'.$module.'_perf'] as $submodule => $subtime) { echo(' '); } } } ?>
Module Duration
'.$module.' '.number_format($time, 4).'s '.$perc.'%
 '.$submodule.' '.number_format($subtime, 4).'s

Discovery Times

$duration) { echo(' '); } ?>
Time
'.generate_tooltip_time($start, 'ago').' '.format_uptime($duration).'