'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 '' . $name . ' |
';
echo '';
$graph = ['type' => $graphtype,
'device' => $device['device_id']];
print_graph_row($graph);
echo ' |
';
}
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 '' . $name . ' |
';
echo '';
$graph = ['type' => $graphtype,
'device' => $device['device_id']];
print_graph_row($graph);
echo ' |
';
}
echo '
';
echo generate_box_close();
} elseif ($vars['view'] === 'memory') {
echo generate_box_open();
echo '
' . PHP_EOL;
echo 'Memory usage |
';
echo '';
$graph = ['type' => 'device_pollermemory_perf',
'device' => $device['device_id']];
print_graph_row($graph);
echo ' |
';
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 '' . $module . ' | ' . $time . 's |
';
echo '';
$graph = ['type' => 'device_pollermodule_perf',
'device' => $device['device_id'],
'module' => $module];
print_graph_row($graph);
echo ' |
';
}
echo '
';
echo generate_box_close();
} else {
?>