'device_poller_perf', 'device' => $device['device_id'] ]; echo generate_box_open(['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(['title' => 'Running Processes']); $cols = [ //'Process ID', 'PID', 'PPID', 'UID', 'Command', 'Name', 'Started', 'Poller ID' //'Device' ]; echo build_table($processes, ['columns' => $cols, 'process_start' => 'prettytime']); echo generate_box_close(); } $navbar = ['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, ['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 (['device_pollerdb_count' => 'MySQL Operations', 'device_pollerdb_times' => 'MySQL Times'] as $graphtype => $name) { echo ''; echo ''; } echo '

' . $name . '

'; $graph = ['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 (['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 = ['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 = ['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 = ['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 = format_number_short(float_div($time, $device['last_polled_timetaken']) * 100, 2); echo(' '); // Separate sub-module perf (ie ports) foreach ($device['state']['poller_' . $module . '_perf'] as $submodule => $subtime) { echo(' '); } } } ?>
Module Duration
' . $module . ' ' . format_value($time) . 's ' . $perc . '%
 ' . $submodule . ' ' . format_value($subtime) . 's

Poller Times

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

Discovery Module Times

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

Discovery Times

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