function boost_display_run_status() { global $refresh, $config, $refresh_interval, $boost_utilities_interval, $boost_refresh_interval, $boost_max_runtime; /* ================= input validation ================= */ input_validate_input_number(get_request_var_request('refresh')); /* ==================================================== */ load_current_session_value('refresh', 'sess_boost_utilities_refresh', '30'); $refresh['seconds'] = $_REQUEST['refresh']; $refresh['page'] = 'utilities.php?action=view_boost_status'; $last_run_time = read_config_option('boost_last_run_time', TRUE); $next_run_time = read_config_option('boost_next_run_time', TRUE); $rrd_updates = read_config_option('boost_rrd_update_enable', TRUE); $boost_server = read_config_option('boost_server_enable', TRUE); $boost_cache = read_config_option('boost_png_cache_enable', TRUE); $max_records = read_config_option('boost_rrd_update_max_records', TRUE); $max_runtime = read_config_option('boost_rrd_update_max_runtime', TRUE); $update_interval = read_config_option('boost_rrd_update_interval', TRUE); $peak_memory = read_config_option('boost_peak_memory', TRUE); $detail_stats = read_config_option('stats_detail_boost', TRUE); html_start_box('<strong>Boost Status</strong>', '100%', '', '3', 'center', ''); ?> <script type="text/javascript"> <!-- function applyStatsRefresh(objForm) { strURL = '?action=view_boost_status&refresh=' + objForm.refresh[objForm.refresh.selectedIndex].value; document.location = strURL; } --> </script> <tr class='even'> <form name="form_boost_utilities_stats" method="post"> <td> <table cellpadding="2" cellspacing="0" border="0"> <tr> <td style="white-space:nowrap;"> Refresh Interval </td> <td> <select name="refresh" onChange="applyStatsRefresh(document.form_boost_utilities_stats)"> <?php foreach ($boost_utilities_interval as $key => $interval) { print '<option value="' . $key . '"'; if ($_REQUEST['refresh'] == $key) { print ' selected'; } print '>' . $interval . '</option>'; } ?> </td> <td> <input type="submit" value="Refresh"> </td> </tr> </table> </td> </form> </tr> <?php html_end_box(TRUE); html_start_box('', '100%', '', '3', 'center', ''); /* get the boost table status */ $boost_table_status = db_fetch_assoc("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=SCHEMA()\n\t\t\t\t\t\tAND (table_name LIKE 'poller_output_boost_arch_%' OR table_name LIKE 'poller_output_boost')"); $pending_records = 0; $arch_records = 0; $data_length = 0; $engine = ''; $max_data_length = 0; foreach ($boost_table_status as $table) { if ($table['TABLE_NAME'] == 'poller_output_boost') { $pending_records += $table['TABLE_ROWS']; } else { $arch_records += $table['TABLE_ROWS']; } $data_length += $table['DATA_LENGTH']; $data_length -= $table['DATA_FREE']; $engine = $table['ENGINE']; $max_data_length = $table['MAX_DATA_LENGTH']; } $total_records = $pending_records + $arch_records; $avg_row_length = $total_records ? intval($data_length / $total_records) : 0; $total_data_sources = db_fetch_cell('SELECT COUNT(*) FROM poller_item'); $boost_status = read_config_option('boost_poller_status', TRUE); if (strlen($boost_status)) { $boost_status_array = explode(':', $boost_status); $boost_status_date = $boost_status_array[1]; if (substr_count($boost_status_array[0], 'complete')) { $boost_status_text = 'Idle'; } elseif (substr_count($boost_status_array[0], 'running')) { $boost_status_text = 'Running'; } elseif (substr_count($boost_status_array[0], 'overrun')) { $boost_status_text = 'Overrun Warning'; } elseif (substr_count($boost_status_array[0], 'timeout')) { $boost_status_text = 'Timed Out'; } else { $boost_status_text = 'Other'; } } else { $boost_status_text = 'Never Run'; $boost_status_date = ''; } $stats_boost = read_config_option('stats_boost', TRUE); if (strlen($stats_boost)) { $stats_boost_array = explode(' ', $stats_boost); $stats_duration = explode(':', $stats_boost_array[0]); $boost_last_run_duration = $stats_duration[1]; $stats_rrds = explode(':', $stats_boost_array[1]); $boost_rrds_updated = $stats_rrds[1]; } else { $boost_last_run_duration = ''; $boost_rrds_updated = ''; } /* get cache directory size/contents */ $cache_directory = read_config_option('boost_png_cache_directory', TRUE); $directory_contents = array(); if (is_dir($cache_directory)) { if ($handle = @opendir($cache_directory)) { /* This is the correct way to loop over the directory. */ while (FALSE !== ($file = readdir($handle))) { $directory_contents[] = $file; } closedir($handle); /* get size of directory */ $directory_size = 0; $cache_files = 0; if (sizeof($directory_contents)) { /* goto the cache directory */ chdir($cache_directory); /* check and fry as applicable */ foreach ($directory_contents as $file) { /* only remove jpeg's and png's */ if (substr_count(strtolower($file), '.png') || substr_count(strtolower($file), '.jpg')) { $cache_files++; $directory_size += filesize($file); } } } $directory_size = boost_file_size_display($directory_size); $cache_files = $cache_files . ' Files'; } else { $directory_size = '<strong>WARNING:</strong> Can not open directory'; $cache_files = '<strong>WARNING:</strong> Unknown'; } } else { $directory_size = '<strong>WARNING:</strong> Directory Does NOT Exist!!'; $cache_files = '<strong>WARNING:</strong> N/A'; } $i = 0; /* boost status display */ html_header(array('Current Boost Status'), 2); form_alternate_row(); print '<td><strong>Boost On Demand Updating:</strong></td><td><strong>' . ($rrd_updates == '' ? 'Disabled' : $boost_status_text) . '</strong></td>'; form_alternate_row(); print '<td><strong>Total Data Sources:</strong></td><td>' . $total_data_sources . '</td>'; if ($total_records > 0) { form_alternate_row(); print '<td><strong>Pending Boost Records:</strong></td><td>' . $pending_records . '</td>'; form_alternate_row(); print '<td><strong>Archived Boost Records:</strong></td><td>' . $arch_records . '</td>'; form_alternate_row(); print '<td><strong>Total Boost Records:</strong></td><td>' . $total_records . '</td>'; } /* boost status display */ html_header(array('Boost Storage Statistics'), 2); /* describe the table format */ form_alternate_row(); print '<td><strong>Database Engine:</strong></td><td>' . $engine . '</td>'; /* tell the user how big the table is */ form_alternate_row(); print '<td><strong>Current Boost Tables Size:</strong></td><td>' . boost_file_size_display($data_length, 2) . '</td>'; /* tell the user about the average size/record */ form_alternate_row(); print '<td><strong>Avg Bytes/Record:</strong></td><td>' . boost_file_size_display($avg_row_length) . '</td>'; /* tell the user about the average size/record */ $output_length = read_config_option('boost_max_output_length'); if (strlen($output_length)) { $parts = explode(':', $output_length); if (time() - 1200 > $parts[0]) { $refresh = TRUE; } else { $refresh = FALSE; } } else { $refresh = TRUE; } if ($refresh) { if (strcmp($engine, 'MEMORY') == 0) { $max_length = db_fetch_cell('SELECT MAX(LENGTH(output)) FROM poller_output_boost'); } else { $max_length = '0'; } db_execute("REPLACE INTO settings (name, value) VALUES ('boost_max_output_length', '" . time() . ':' . $max_length . "')"); } else { $max_length = $parts[1]; } if ($max_length != 0) { form_alternate_row(); print '<td><strong>Max Record Length:</strong></td><td>' . $max_length . ' Bytes</td>'; } /* tell the user about the "Maximum Size" this table can be */ form_alternate_row(); if (strcmp($engine, 'MEMORY')) { $max_table_allowed = 'Unlimited'; $max_table_records = 'Unlimited'; } else { $max_table_allowed = boost_file_size_display($max_data_length, 2); $max_table_records = $avg_row_length ? round($max_data_length / $avg_row_length, 0) : 0; } print '<td><strong>Max Allowed Boost Table Size:</strong></td><td>' . $max_table_allowed . '</td>'; /* tell the user about the estimated records that "could" be held in memory */ form_alternate_row(); print '<td><strong>Estimated Maximum Records:</strong></td><td>' . $max_table_records . ' Records</td>'; /* boost last runtime display */ html_header(array('Runtime Statistics'), 2); form_alternate_row(); print '<td width=200><strong>Last Start Time:</strong></td><td>' . $last_run_time . '</td>'; form_alternate_row(); print '<td width=200><strong>Last Run Duration:</strong></td><td>'; print ($boost_last_run_duration > 60 ? (int) ($boost_last_run_duration / 60) . ' minutes ' : '') . $boost_last_run_duration % 60 . ' seconds'; if ($rrd_updates != '') { print ' (' . round(100 * $boost_last_run_duration / $update_interval / 60) . '% of update frequency)'; } print '</td>'; form_alternate_row(); print '<td width=200><strong>RRD Updates:</strong></td><td>' . $boost_rrds_updated . '</td>'; form_alternate_row(); print '<td width=200><strong>Peak Poller Memory:</strong></td><td>' . (read_config_option('boost_peak_memory') != '' ? round(read_config_option('boost_peak_memory') / 1024 / 1024, 2) . ' MBytes' : 'N/A') . '</td>'; form_alternate_row(); print '<td width=200><strong>Detailed Runtime Timers:</strong></td><td>' . ($detail_stats != '' ? $detail_stats : 'N/A') . '</td>'; form_alternate_row(); print '<td width=200><strong>Max Poller Memory Allowed:</strong></td><td>' . (read_config_option('boost_poller_mem_limit') != '' ? read_config_option('boost_poller_mem_limit') . ' MBytes' : 'N/A') . '</td>'; /* boost runtime display */ html_header(array('Run Time Configuration'), 2); form_alternate_row(); print '<td width=200><strong>Update Frequency:</strong></td><td><strong>' . ($rrd_updates == '' ? 'N/A' : $boost_refresh_interval[$update_interval]) . '</strong></td>'; form_alternate_row(); print '<td width=200><strong>Next Start Time:</strong></td><td>' . $next_run_time . '</td>'; form_alternate_row(); print '<td width=200><strong>Maximum Records:</strong></td><td>' . $max_records . ' Records</td>'; form_alternate_row(); print '<td width=200><strong>Maximum Allowed Runtime:</strong></td><td>' . $boost_max_runtime[$max_runtime] . '</td>'; /* boost runtime display */ html_header(array('Boost Server Details'), 2); form_alternate_row(); print '<td><strong>Server Config Status:</strong></td><td><strong>' . ($boost_server == '' ? 'Disabled' : 'Enabled') . '</strong></td>'; form_alternate_row(); print '<td><strong>Multiprocess Server:</td><td>' . (read_config_option('boost_server_multiprocess', TRUE) == '1' ? 'Multiple Process' : 'Single Process') . '</strong></td>'; form_alternate_row(); print '<td><strong>Update Timeout:</td><td>' . read_config_option('boost_server_timeout', TRUE) . ' Seconds</strong></td>'; form_alternate_row(); print '<td><strong>Server/Port:</td><td>' . read_config_option('boost_server_hostname', TRUE) . '@' . read_config_option('boost_server_listen_port', TRUE) . '</strong></td>'; form_alternate_row(); print '<td><strong>Authorized Update Web Servers:</td><td>' . read_config_option('boost_server_clients', TRUE) . '</strong></td>'; if (strlen(read_config_option('boost_path_rrdupdate')) && read_config_option('boost_server_multiprocess') == 1) { form_alternate_row(); print '<td><strong>RRDtool Binary Used:</td><td>' . read_config_option('boost_path_rrdupdate') . '</strong></td>'; } else { form_alternate_row(); print '<td><strong>RRDtool Binary Used:</td><td>' . read_config_option('path_rrdtool') . '</strong></td>'; } /* boost caching */ html_header(array('Image Caching'), 2); form_alternate_row(); print '<td><strong>Image Caching Status:</strong></td><td><strong>' . ($boost_cache == '' ? 'Disabled' : 'Enabled') . '</strong></td>'; form_alternate_row(); print '<td><strong>Cache Directory:</strong></td><td>' . $cache_directory . '</td>'; form_alternate_row(); print '<td><strong>Cached Files:</strong></td><td>' . $cache_files . '</td>'; form_alternate_row(); print '<td><strong>Cached Files Size:</strong></td><td>' . $directory_size . '</td>'; html_end_box(TRUE); }
function boost_display_run_status() { global $colors, $config, $refresh_interval, $boost_utilities_interval, $boost_refresh_interval, $boost_max_runtime; $last_run_time = read_config_option("boost_last_run_time", TRUE); $next_run_time = read_config_option("boost_next_run_time", TRUE); $rrd_updates = read_config_option("boost_rrd_update_enable", TRUE); $boost_server = read_config_option("boost_server_enable", TRUE); $boost_cache = read_config_option("boost_png_cache_enable", TRUE); $max_records = read_config_option("boost_rrd_update_max_records", TRUE); $max_runtime = read_config_option("boost_rrd_update_max_runtime", TRUE); $update_interval = read_config_option("boost_rrd_update_interval", TRUE); $peak_memory = read_config_option('boost_peak_memory', TRUE); $detail_stats = read_config_option('stats_detail_boost', TRUE); html_start_box("<strong>Boost Status</strong>", "100%", $colors["header"], "1", "center", ""); ?> <script type="text/javascript"> <!-- function applyStatsRefresh(objForm) { strURL = '?action=view_boost_status&refresh=' + objForm.refresh[objForm.refresh.selectedIndex].value; document.location = strURL; } --> </script> <tr bgcolor="<?php print $colors["panel"]; ?> "> <form name="form_boost_utilities_stats" method="post"> <td> <table cellpadding="1" cellspacing="0"> <tr> <td width="120" style="white-space:nowrap;"> Refresh Interval: </td> <td width="1"> <select name="refresh" onChange="applyStatsRefresh(document.form_boost_utilities_stats)"> <?php foreach ($boost_utilities_interval as $key => $interval) { print '<option value="' . $key . '"'; if ($_REQUEST["refresh"] == $key) { print " selected"; } print ">" . $interval . "</option>"; } ?> </td> <td> <input type="submit" value="Refresh"> </td> </tr> </table> </td> </form> </tr> <?php html_end_box(TRUE); html_start_box("", "100%", $colors["header"], "1", "center", ""); /* get the boost table status */ $boost_table_status = db_fetch_assoc("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=SCHEMA()\r\n\t\t\t\t\t\tAND (table_name LIKE 'poller_output_boost_arch_%' OR table_name LIKE 'poller_output_boost')"); $pending_records = 0; $arch_records = 0; $data_length = 0; $engine = ""; $max_data_length = 0; foreach ($boost_table_status as $table) { if ($table["TABLE_NAME"] == "poller_output_boost") { $pending_records += $table["TABLE_ROWS"]; } else { $arch_records += $table["TABLE_ROWS"]; } $data_length += $table["DATA_LENGTH"]; $data_length -= $table["DATA_FREE"]; $engine = $table["ENGINE"]; $max_data_length = $table["MAX_DATA_LENGTH"]; } $total_records = $pending_records + $arch_records; $avg_row_length = intval($data_length / $total_records); $total_data_sources = db_fetch_cell("SELECT COUNT(*) FROM poller_item"); $boost_status = read_config_option("boost_poller_status", TRUE); if (strlen($boost_status)) { $boost_status_array = explode(":", $boost_status); $boost_status_date = $boost_status_array[1]; if (substr_count($boost_status_array[0], "complete")) { $boost_status_text = "Idle"; } elseif (substr_count($boost_status_array[0], "running")) { $boost_status_text = "Running"; } elseif (substr_count($boost_status_array[0], "overrun")) { $boost_status_text = "Overrun Warning"; } elseif (substr_count($boost_status_array[0], "timeout")) { $boost_status_text = "Timed Out"; } else { $boost_status_text = "Other"; } } else { $boost_status_text = "Never Run"; $boost_status_date = ""; } $stats_boost = read_config_option("stats_boost", TRUE); if (strlen($stats_boost)) { $stats_boost_array = explode(" ", $stats_boost); $stats_duration = explode(":", $stats_boost_array[0]); $boost_last_run_duration = $stats_duration[1]; $stats_rrds = explode(":", $stats_boost_array[1]); $boost_rrds_updated = $stats_rrds[1]; } else { $boost_last_run_duration = ""; $boost_rrds_updated = ""; } /* get cache directory size/contents */ $cache_directory = read_config_option("boost_png_cache_directory", TRUE); $directory_contents = array(); if (is_dir($cache_directory)) { if ($handle = @opendir($cache_directory)) { /* This is the correct way to loop over the directory. */ while (FALSE !== ($file = readdir($handle))) { $directory_contents[] = $file; } closedir($handle); /* get size of directory */ $directory_size = 0; $cache_files = 0; if (sizeof($directory_contents)) { /* goto the cache directory */ chdir($cache_directory); /* check and fry as applicable */ foreach ($directory_contents as $file) { /* only remove jpeg's and png's */ if (substr_count(strtolower($file), ".png") || substr_count(strtolower($file), ".jpg")) { $cache_files++; $directory_size += filesize($file); } } } $directory_size = boost_file_size_display($directory_size); $cache_files = $cache_files . " Files"; } else { $directory_size = "<strong>WARNING:</strong> Can not open directory"; $cache_files = "<strong>WARNING:</strong> Unknown"; } } else { $directory_size = "<strong>WARNING:</strong> Directory Does NOT Exist!!"; $cache_files = "<strong>WARNING:</strong> N/A"; } $i = 0; /* boost status display */ html_header(array("Current Boost Status"), 2); form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Boost On Demand Updating:</strong></td><td><strong>" . ($rrd_updates == "" ? "Disabled" : $boost_status_text) . "</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Total Data Sources:</strong></td><td>" . $total_data_sources . "</td>"; if ($total_records > 0) { form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Pending Boost Records:</strong></td><td>" . $pending_records . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Archived Boost Records:</strong></td><td>" . $arch_records . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Total Boost Records:</strong></td><td>" . $total_records . "</td>"; } /* boost status display */ html_header(array("Boost Storage Statistics"), 2); /* describe the table format */ form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Database Engine:</strong></td><td>" . $engine . "</td>"; /* tell the user how big the table is */ form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Current Boost Tables Size:</strong></td><td>" . boost_file_size_display($data_length, 2) . "</td>"; /* tell the user about the average size/record */ form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Avg Bytes/Record:</strong></td><td>" . boost_file_size_display($avg_row_length) . "</td>"; /* tell the user about the average size/record */ $output_length = read_config_option("boost_max_output_length"); if (strlen($output_length)) { $parts = explode(":", $output_length); if (time() - 1200 > $parts[0]) { $refresh = TRUE; } else { $refresh = FALSE; } } else { $refresh = TRUE; } if ($refresh) { if (strcmp($engine, "MEMORY") == 0) { $max_length = db_fetch_cell("SELECT MAX(LENGTH(output)) FROM poller_output_boost"); } else { $max_length = "0"; } db_execute("REPLACE INTO settings (name,value) VALUES ('boost_max_output_length', '" . time() . ":" . $max_length . "')"); } else { $max_length = $parts[1]; } if ($max_length != 0) { form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Max Record Length:</strong></td><td>" . $max_length . " Bytes</td>"; } /* tell the user about the "Maximum Size" this table can be */ form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; if (strcmp($engine, "MEMORY")) { $max_table_allowed = "Unlimited"; $max_table_records = "Unlimited"; } else { $max_table_allowed = boost_file_size_display($max_data_length, 2); $max_table_records = round($max_data_length / $avg_row_length, 0); } print "<td><strong>Max Allowed Boost Table Size:</strong></td><td>" . $max_table_allowed . "</td>"; /* tell the user about the estimated records that "could" be held in memory */ form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Estimated Maximum Records:</strong></td><td>" . $max_table_records . " Records</td>"; /* boost last runtime display */ html_header(array("Runtime Statistics"), 2); form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Last Start Time:</strong></td><td>" . $last_run_time . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Last Run Duration:</strong></td><td>"; print ($boost_last_run_duration > 60 ? (int) ($boost_last_run_duration / 60) . " minutes " : "") . $boost_last_run_duration % 60 . " seconds"; if ($rrd_updates != "") { print " (" . round(100 * $boost_last_run_duration / $update_interval / 60) . "% of update frequency)"; } print "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>RRD Updates:</strong></td><td>" . $boost_rrds_updated . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Peak Poller Memory:</strong></td><td>" . (read_config_option('boost_peak_memory') != '' ? round(read_config_option('boost_peak_memory') / 1024 / 1024, 2) . " MBytes" : "N/A") . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Detailed Runtime Timers:</strong></td><td>" . ($detail_stats != '' ? $detail_stats : "N/A") . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Max Poller Memory Allowed:</strong></td><td>" . (read_config_option('boost_poller_mem_limit') != '' ? read_config_option('boost_poller_mem_limit') . " MBytes" : "N/A") . "</td>"; /* boost runtime display */ html_header(array("Run Time Configuration"), 2); form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Update Frequency:</strong></td><td><strong>" . ($rrd_updates == "" ? "N/A" : $boost_refresh_interval[$update_interval]) . "</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Next Start Time:</strong></td><td>" . $next_run_time . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Maximum Records:</strong></td><td>" . $max_records . " Records</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td width=200><strong>Maximum Allowed Runtime:</strong></td><td>" . $boost_max_runtime[$max_runtime] . "</td>"; /* boost runtime display */ html_header(array("Boost Server Details"), 2); form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Server Config Status:</strong></td><td><strong>" . ($boost_server == "" ? "Disabled" : "Enabled") . "</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Multiprocess Server:</td><td>" . (read_config_option("boost_server_multiprocess", TRUE) == "1" ? "Multiple Process" : "Single Process") . "</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Update Timeout:</td><td>" . read_config_option("boost_server_timeout", TRUE) . " Seconds</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Server/Port:</td><td>" . read_config_option("boost_server_hostname", TRUE) . "@" . read_config_option("boost_server_listen_port", TRUE) . "</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Authorized Update Web Servers:</td><td>" . read_config_option("boost_server_clients", TRUE) . "</strong></td>"; if (strlen(read_config_option("boost_path_rrdupdate")) && read_config_option("boost_server_multiprocess") == 1) { form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>RRDtool Binary Used:</td><td>" . read_config_option("boost_path_rrdupdate") . "</strong></td>"; } else { form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>RRDtool Binary Used:</td><td>" . read_config_option("path_rrdtool") . "</strong></td>"; } /* boost caching */ html_header(array("Image Caching"), 2); form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Image Caching Status:</strong></td><td><strong>" . ($boost_cache == "" ? "Disabled" : "Enabled") . "</strong></td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Cache Directory:</strong></td><td>" . $cache_directory . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Cached Files:</strong></td><td>" . $cache_files . "</td>"; form_alternate_row_color($colors["alternate"], $colors["light"], $i); $i++; print "<td><strong>Cached Files Size:</strong></td><td>" . $directory_size . "</td>"; html_end_box(TRUE); }