[ 'poller_name' => "Default", 'poller_id' => 0 ]]; $navbar = ['brand' => "Poller", 'class' => "navbar-narrow"]; if ($_SESSION['userlevel'] >= 7) { $navbar['options']['wrapper']['text'] = 'Wrapper'; } $navbar['options']['devices']['text'] = 'Per-Device'; $navbar['options']['modules']['text'] = 'Per-Module'; if (OBS_DISTRIBUTED) { foreach (dbFetchRows("SELECT *, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`timestamp`) AS `lasttime` FROM `pollers`") as $entry) { $pollers[$entry['poller_id']] = $entry; } $navbar['options']['pollers']['text'] = 'Partitions'; $navbar['options_right']['poller_id']['text'] = 'Poller Partition (All)'; if (!safe_empty($vars['poller_id'])) { $navbar['options_right']['poller_id']['suboptions']['all']['text'] = 'All Partitions'; $navbar['options_right']['poller_id']['suboptions']['all']['url'] = generate_url($vars, ['poller_id' => NULL]); } foreach ($pollers as $poller) { $navbar['options_right']['poller_id']['suboptions'][$poller['poller_id']]['text'] = escape_html($poller['poller_name']); $navbar['options_right']['poller_id']['suboptions'][$poller['poller_id']]['url'] = generate_url($vars, ['poller_id' => $poller['poller_id']]); if (!safe_empty($vars['poller_id']) && $vars['poller_id'] == $poller['poller_id']) { $navbar['options_right']['poller_id']['suboptions'][$poller['poller_id']]['class'] = "active"; $navbar['options_right']['poller_id']['text'] = 'Poller Partition (' . $poller['poller_name'] . ')'; } } } foreach ($navbar['options'] as $option => $array) { if (!isset($vars['view'])) { $vars['view'] = $option; } if ($vars['view'] == $option) { $navbar['options'][$option]['class'] .= " active"; } $navbar['options'][$option]['url'] = generate_url($vars, ['view' => $option]); } print_navbar($navbar); unset($navbar); // Generate statistics $totals['pollery'] = 0; $totals['disovery'] = 0; $totals['count'] = 0; $proc['avg2']['poller'] = 0; $proc['avg2']['discovery'] = 0; $proc['max']['poller'] = 0; $proc['max']['discovery'] = 0; $mod_total = 0; $mods = []; // Make poller table $devices = []; foreach (dbFetchRows("SELECT * FROM `devices`") as $device) { $device_id = $device['device_id']; humanize_device($device); if ($device['disabled'] == 1 && !$config['web_show_disabled']) { continue; } if (!safe_empty($vars['poller_id']) && $device['poller_id'] != $vars['poller_id']) { // Restricting devices list to matching poller domain. //unset($devices[$device['device_id']]); continue; } // Convert empty times to numeric $device['last_polled_timetaken'] = (float)$device['last_polled_timetaken']; $device['last_discovered_timetaken'] = (float)$device['last_discovered_timetaken']; $devices[$device['device_id']] = $device; // Find max poller/discovery times if ($device['status']) { if ($device['last_polled_timetaken'] > $proc['max']['poller']) { $proc['max']['poller'] = $device['last_polled_timetaken']; } if ($device['last_discovered_timetaken'] > $proc['max']['discovery']) { $proc['max']['discovery'] = $device['last_discovered_timetaken']; } } $proc['avg2']['poller'] += $device['last_polled_timetaken'] ** 2; $proc['avg2']['discovery'] += $device['last_discovered_timetaken'] ** 2; $totals['count']++; $totals['poller'] += $device['last_polled_timetaken']; $totals['discovery'] += $device['last_discovered_timetaken']; $devices[$device_id] = array_merge($devices[$device_id], [ 'html_row_class' => $device['html_row_class'], 'device_hostname' => $device['hostname'], 'device_link' => generate_device_link($device), 'device_status' => $device['status'], 'device_disabled' => $device['disabled'], 'last_polled_timetaken' => $device['last_polled_timetaken'], //'last_polled' => $device['last_polled'], 'last_discovered_timetaken' => $device['last_discovered_timetaken'], //'last_discovered' => $device['last_discovered'] ] ); foreach ($device['state']['poller_mod_perf'] as $mod => $time) { $mods[$mod]['time'] += $time; $mods[$mod]['count']++; $mod_total += $time; } } $proc['avg']['poller'] = round(float_div($totals['polling'], $totals['count']), 2); $proc['avg']['discovery'] = round(float_div($totals['discovery'], $totals['count']), 2); // End generate statistics if ($vars['view'] === "modules") { if ($_SESSION['userlevel'] >= 7) { echo generate_box_open(['header-border' => TRUE, 'title' => 'Poller Modules']); $graph_array = [ 'type' => 'global_pollermods', 'from' => get_time('week'), 'to' => get_time(), 'legend' => 'no' ]; if (!safe_empty($vars['poller_id']) && is_numeric($vars['poller_id'])) { $graph_array['poller_id'] = $vars['poller_id']; } print_graph_row($graph_array); echo generate_box_close(); } echo generate_box_open(); if ($_SESSION['userlevel'] >= 7) { echo('
' . $mod . ' | ';
echo ' ' . print_percentage_bar('100%', '20', $perc, $perc . '%', "ffffff", $bg['left'], '', "ffffff", $bg['right']) . ' | '; echo '' . $data['count'] . ' | '; echo '' . round($data['time'], 3) . 's | '; echo '||
'; $graph_array = [ 'type' => 'global_pollermod', 'module' => $mod, 'legend' => 'no' ]; if (!safe_empty($vars['poller_id']) && is_numeric($vars['poller_id'])) { $graph_array['poller_id'] = $vars['poller_id']; } print_graph_row($graph_array); echo ' | '; echo '
Device | Last Polled | Last Discovered | Poller'; } ?>|||||||
---|---|---|---|---|---|---|---|---|---|
' . $row['device_link'] . ' | ' . print_percentage_bar('100%', '20', $proc['time']['poller'], $proc['time']['poller'] . '%', "ffffff", $poll_bg['left'], '', "ffffff", $poll_bg['right']) . ' | ' . $row['last_polled_timetaken'] . 's | ' . format_uptime(get_time('now') - strtotime($row['last_polled']), 'shorter') . ' ago | '); // Discovery times echo('' . print_percentage_bar('100%', '20', $proc['time']['discovery'], $proc['time']['discovery'] . '%', "ffffff", $discover_bg['left'], '', "ffffff", $discover_bg['right']) . ' | ' . $row['last_discovered_timetaken'] . 's | ' . format_uptime(get_time('now') - strtotime($row['last_discovered']), 'shorter') . ' ago | '); if (safe_empty($vars['poller_id'])) { echo '' . get_type_class_label($pollers[$row['poller_id']]['poller_name'], 'poller') . ' | '; } echo '||
Total time for all devices (average per device): | ' . $totals['poller'] . 's (' . $proc['avg2']['poller'] . 's) | ' . $totals['discovery'] . 's (' . $proc['avg2']['discovery'] . 's) |