/pma/server_status.php
PHP | 843 lines | 664 code | 81 blank | 98 comment | 61 complexity | 8fb5b16ca0761fec6c0dc0acb5cff238 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause, GPL-2.0, LGPL-2.1
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * displays status variables with descriptions and some hints an optmizing
- * + reset status variables
- *
- * @version $Id: server_status.php 12377 2009-04-19 12:01:48Z lem9 $
- * @package phpMyAdmin
- */
- /**
- * no need for variables importing
- * @ignore
- */
- if (! defined('PMA_NO_VARIABLES_IMPORT')) {
- define('PMA_NO_VARIABLES_IMPORT', true);
- }
- require_once './libraries/common.inc.php';
- /**
- * Does the common work
- */
- require './libraries/server_common.inc.php';
- /**
- * Displays the links
- */
- require './libraries/server_links.inc.php';
- /**
- * Displays the sub-page heading
- */
- echo '<div id="serverstatus">' . "\n";
- echo '<h2>' . "\n"
- . ($GLOBALS['cfg']['MainPageIconic']
- ? '<img class="icon" src="' . $GLOBALS['pmaThemeImage'] .
- 's_status.png" width="16" height="16" alt="" />'
- : '')
- . $strServerStatus . "\n"
- . '</h2>' . "\n";
- /**
- * flush status variables if requested
- */
- if (isset($_REQUEST['flush'])) {
- $_flush_commands = array(
- 'STATUS',
- 'TABLES',
- 'QUERY CACHE',
- );
- if (in_array($_REQUEST['flush'], $_flush_commands)) {
- PMA_DBI_query('FLUSH ' . $_REQUEST['flush'] . ';');
- }
- unset($_flush_commands);
- }
- /**
- * get status from server
- */
- $server_status = PMA_DBI_fetch_result('SHOW GLOBAL STATUS', 0, 1);
- /**
- * get master status from server
- */
- $server_master_status = PMA_DBI_fetch_result('SHOW MASTER STATUS');
- /**
- * get slave status from server
- */
- $server_slave_status = PMA_DBI_fetch_result('SHOW SLAVE STATUS');
- /**
- * for some calculations we require also some server settings
- */
- $server_variables = PMA_DBI_fetch_result('SHOW GLOBAL VARIABLES', 0, 1);
- /**
- * starttime calculation
- */
- $start_time = PMA_DBI_fetch_value(
- 'SELECT UNIX_TIMESTAMP() - ' . $server_status['Uptime']);
- /**
- * cleanup some deprecated values
- */
- $deprecated = array(
- 'Com_prepare_sql' => 'Com_stmt_prepare',
- 'Com_execute_sql' => 'Com_stmt_execute',
- 'Com_dealloc_sql' => 'Com_stmt_close',
- );
- foreach ($deprecated as $old => $new) {
- if (isset($server_status[$old])
- && isset($server_status[$new])) {
- unset($server_status[$old]);
- }
- }
- unset($deprecated);
- /**
- * calculate some values
- */
- // Key_buffer_fraction
- if (isset($server_status['Key_blocks_unused'])
- && isset($server_variables['key_cache_block_size'])
- && isset($server_variables['key_buffer_size'])) {
- $server_status['Key_buffer_fraction_%'] =
- 100
- - $server_status['Key_blocks_unused']
- * $server_variables['key_cache_block_size']
- / $server_variables['key_buffer_size']
- * 100;
- } elseif (
- isset($server_status['Key_blocks_used'])
- && isset($server_variables['key_buffer_size'])) {
- $server_status['Key_buffer_fraction_%'] =
- $server_status['Key_blocks_used']
- * 1024
- / $server_variables['key_buffer_size'];
- }
- // Ratio for key read/write
- if (isset($server_status['Key_writes'])
- && isset($server_status['Key_write_requests'])
- && $server_status['Key_write_requests'] > 0)
- $server_status['Key_write_ratio_%'] = 100 * $server_status['Key_writes'] / $server_status['Key_write_requests'];
- if (isset($server_status['Key_reads'])
- && isset($server_status['Key_read_requests'])
- && $server_status['Key_read_requests'] > 0)
- $server_status['Key_read_ratio_%'] = 100 * $server_status['Key_reads'] / $server_status['Key_read_requests'];
- // Threads_cache_hitrate
- if (isset($server_status['Threads_created'])
- && isset($server_status['Connections'])
- && $server_status['Connections'] > 0) {
- $server_status['Threads_cache_hitrate_%'] =
- 100
- - $server_status['Threads_created']
- / $server_status['Connections']
- * 100;
- }
- /**
- * define some alerts
- */
- // name => max value before alert
- $alerts = array(
- // lower is better
- // variable => max value
- 'Aborted_clients' => 0,
- 'Aborted_connects' => 0,
- 'Binlog_cache_disk_use' => 0,
- 'Created_tmp_disk_tables' => 0,
- 'Handler_read_rnd' => 0,
- 'Handler_read_rnd_next' => 0,
- 'Innodb_buffer_pool_pages_dirty' => 0,
- 'Innodb_buffer_pool_reads' => 0,
- 'Innodb_buffer_pool_wait_free' => 0,
- 'Innodb_log_waits' => 0,
- 'Innodb_row_lock_time_avg' => 10, // ms
- 'Innodb_row_lock_time_max' => 50, // ms
- 'Innodb_row_lock_waits' => 0,
- 'Slow_queries' => 0,
- 'Delayed_errors' => 0,
- 'Select_full_join' => 0,
- 'Select_range_check' => 0,
- 'Sort_merge_passes' => 0,
- 'Opened_tables' => 0,
- 'Table_locks_waited' => 0,
- 'Qcache_lowmem_prunes' => 0,
- 'Slow_launch_threads' => 0,
- // depends on Key_read_requests
- // normaly lower then 1:0.01
- 'Key_reads' => (0.01 * $server_status['Key_read_requests']),
- // depends on Key_write_requests
- // normaly nearly 1:1
- 'Key_writes' => (0.9 * $server_status['Key_write_requests']),
- 'Key_buffer_fraction' => 0.5,
- // alert if more than 95% of thread cache is in use
- 'Threads_cached' => 0.95 * $server_variables['thread_cache_size']
- // higher is better
- // variable => min value
- //'Handler read key' => '> ',
- );
- /**
- * split variables in sections
- */
- $allocations = array(
- // variable name => section
- 'Com_' => 'com',
- 'Innodb_' => 'innodb',
- 'Ndb_' => 'ndb',
- 'Ssl_' => 'ssl',
- 'Handler_' => 'handler',
- 'Qcache_' => 'qcache',
- 'Threads_' => 'threads',
- 'Slow_launch_threads' => 'threads',
- 'Binlog_cache_' => 'binlog_cache',
- 'Created_tmp_' => 'created_tmp',
- 'Key_' => 'key',
- 'Delayed_' => 'delayed',
- 'Not_flushed_delayed_rows' => 'delayed',
- 'Flush_commands' => 'query',
- 'Last_query_cost' => 'query',
- 'Slow_queries' => 'query',
- 'Select_' => 'select',
- 'Sort_' => 'sort',
- 'Open_tables' => 'table',
- 'Opened_tables' => 'table',
- 'Table_locks_' => 'table',
- 'Rpl_status' => 'repl',
- 'Slave_' => 'repl',
- 'Tc_' => 'tc',
- );
- $sections = array(
- // section => section name (description)
- 'com' => array('title' => ''),
- 'query' => array('title' => $strSQLQuery),
- 'innodb' => array('title' => 'InnoDB'),
- 'ndb' => array('title' => 'NDB'),
- 'ssl' => array('title' => 'SSL'),
- 'handler' => array('title' => $strHandler),
- 'qcache' => array('title' => $strQueryCache),
- 'threads' => array('title' => $strThreads),
- 'binlog_cache' => array('title' => $strBinaryLog),
- 'created_tmp' => array('title' => $strTempData),
- 'delayed' => array('title' => $strServerStatusDelayedInserts),
- 'key' => array('title' => $strKeyCache),
- 'select' => array('title' => $strJoins),
- 'repl' => array('title' => $strReplication),
- 'sort' => array('title' => $strSorting),
- 'table' => array('title' => $strNumTables),
- 'tc' => array('title' => $strTransactionCoordinator),
- );
- /**
- * replication types
- */
- $replication_types = array('master', 'slave');
- /**
- * define variables for master status
- */
- $master_variables = array(
- 'File',
- 'Position',
- 'Binlog_Do_DB',
- 'Binlog_Ignore_DB'
- );
- /**
- * Define variables for slave status
- */
- $slave_variables = array(
- 'Slave_IO_State',
- 'Master_Host',
- 'Master_User',
- 'Master_Port',
- 'Connect_Retry',
- 'Master_Log_File',
- 'Read_Master_Log_Pos',
- 'Relay_Log_File',
- 'Relay_Log_Pos',
- 'Relay_Master_Log_File',
- 'Slave_IO_Running',
- 'Slave_SQL_Running',
- 'Replicate_Do_DB',
- 'Replicate_Ignore_DB',
- 'Replicate_Do_Table',
- 'Replicate_Ignore_Table',
- 'Replicate_Wild_Do_Table',
- 'Replicate_Wild_Ignore_Table',
- 'Last_Errno',
- 'Last_Error',
- 'Skip_Counter',
- 'Exec_Master_Log_Pos',
- 'Relay_Log_Space',
- 'Until_Condition',
- 'Until_Log_File',
- 'Until_Log_Pos',
- 'Master_SSL_Allowed',
- 'Master_SSL_CA_File',
- 'Master_SSL_CA_Path',
- 'Master_SSL_Cert',
- 'Master_SSL_Cipher',
- 'Master_SSL_Key',
- 'Seconds_Behind_Master'
- );
- /**
- * define important variables, which need to be watched for correct running of replication in slave mode
- */
- $slave_variables_alerts = array(
- 'Slave_IO_Running' => 'No',
- 'Slave_SQL_Running' => 'No'
- );
- $slave_variables_oks = array(
- 'Slave_IO_Running' => 'Yes',
- 'Slave_SQL_Running' => 'Yes'
- );
- /**
- * define some needfull links/commands
- */
- // variable or section name => (name => url)
- $links = array();
- $links['table'][$strFlushTables]
- = $PMA_PHP_SELF . '?flush=TABLES&' . PMA_generate_common_url();
- $links['table'][$strShowOpenTables]
- = 'sql.php?sql_query=' . urlencode('SHOW OPEN TABLES') .
- '&goto=server_status.php&' . PMA_generate_common_url();
- $links['repl'][$strShowSlaveHosts]
- = 'sql.php?sql_query=' . urlencode('SHOW SLAVE HOSTS') .
- '&goto=server_status.php&' . PMA_generate_common_url();
- $links['repl'][$strShowSlaveStatus]
- = 'sql.php?sql_query=' . urlencode('SHOW SLAVE STATUS') .
- '&goto=server_status.php&' . PMA_generate_common_url();
- $links['repl']['doc'] = 'replication';
- $links['qcache'][$strFlushQueryCache]
- = $PMA_PHP_SELF . '?flush=' . urlencode('QUERY CACHE') . '&' .
- PMA_generate_common_url();
- $links['qcache']['doc'] = 'query_cache';
- $links['threads'][$strMySQLShowProcess]
- = 'server_processlist.php?' . PMA_generate_common_url();
- $links['threads']['doc'] = 'mysql_threads';
- $links['key']['doc'] = 'myisam_key_cache';
- $links['binlog_cache']['doc'] = 'binary_log';
- $links['Slow_queries']['doc'] = 'slow_query_log';
- $links['innodb'][$strServerTabVariables]
- = 'server_engines.php?engine=InnoDB&' . PMA_generate_common_url();
- $links['innodb'][$strInnodbStat]
- = 'server_engines.php?engine=InnoDB&page=Status&' .
- PMA_generate_common_url();
- $links['innodb']['doc'] = 'innodb';
- // sort status vars into arrays
- foreach ($server_status as $name => $value) {
- if (isset($allocations[$name])) {
- $sections[$allocations[$name]]['vars'][$name] = $value;
- unset($server_status[$name]);
- } else {
- foreach ($allocations as $filter => $section) {
- if (preg_match('/^' . $filter . '/', $name)
- && isset($server_status[$name])) {
- unset($server_status[$name]);
- $sections[$section]['vars'][$name] = $value;
- }
- }
- }
- }
- unset($name, $value, $filter, $section, $allocations);
- // check which replication is available
- foreach ($replication_types as $type)
- {
- if (count(${"server_{$type}_status"}) > 0)
- ${"server_{$type}_status_run"} = true;
- else
- ${"server_{$type}_status_run"} = false;
- }
- // rest
- $sections['all']['vars'] =& $server_status;
- $hour_factor = 3600 / $server_status['Uptime'];
- /**
- * start output
- */
- ?>
- <div id="statuslinks">
- <a href="<?php echo
- $PMA_PHP_SELF . '?' . PMA_generate_common_url(); ?>"
- ><?php echo $strRefresh; ?></a>
- <a href="<?php echo
- $PMA_PHP_SELF . '?flush=STATUS&' . PMA_generate_common_url(); ?>"
- ><?php echo $strShowStatusReset; ?></a>
- <?php echo PMA_showMySQLDocu('server_status_variables','server_status_variables'); ?>
- </div>
- <p>
- <?php
- echo sprintf($strServerStatusUptime,
- PMA_timespanFormat($server_status['Uptime']),
- PMA_localisedDate($start_time)) . "\n";
- ?>
- </p>
- <?php
- if ($server_master_status_run || $server_slave_status_run)
- {
- $replicationOut = "";
- foreach ($replication_types as $type)
- {
- if ($replicationOut != "")
- $replicationOut .= $strAndSmall . ' ';
- if (${"server_{$type}_status_run"})
- {
- $replicationOut .= '<b>' . $type . '</b> ';
- }
- }
- echo sprintf('<p>' . $strReplicationStatusInfo . '</p>', $replicationOut);
- }
- ?>
- <div id="sectionlinks">
- <?php
- foreach ($sections as $section_name => $section) {
- if (! empty($section['vars']) && ! empty($section['title'])) {
- echo '<a href="' . $PMA_PHP_SELF . '?' .
- PMA_generate_common_url() . '#' . $section_name . '">' .
- $section['title'] . '</a>' . "\n";
- }
- }
- ?>
- </div>
- <h3><?php echo $strServerTrafficNotes; ?></h3>
- <table id="serverstatustraffic" class="data">
- <thead>
- <tr>
- <th colspan="2"><?php echo $strTraffic . ' ' . PMA_showHint($strStatisticsOverrun); ?></th>
- <th>ø <?php echo $strPerHour; ?></th>
- </tr>
- </thead>
- <tbody>
- <tr class="odd">
- <th class="name"><?php echo $strReceived; ?></th>
- <td class="value"><?php echo
- implode(' ',
- PMA_formatByteDown($server_status['Bytes_received'], 4)); ?></td>
- <td class="value"><?php echo
- implode(' ',
- PMA_formatByteDown(
- $server_status['Bytes_received'] * $hour_factor, 4)); ?></td>
- </tr>
- <tr class="even">
- <th class="name"><?php echo $strSent; ?></th>
- <td class="value"><?php echo
- implode(' ',
- PMA_formatByteDown($server_status['Bytes_sent'], 4)); ?></td>
- <td class="value"><?php echo
- implode(' ',
- PMA_formatByteDown(
- $server_status['Bytes_sent'] * $hour_factor, 4)); ?></td>
- </tr>
- <tr class="odd">
- <th class="name"><?php echo $strTotalUC; ?></th>
- <td class="value"><?php echo
- implode(' ',
- PMA_formatByteDown(
- $server_status['Bytes_received'] + $server_status['Bytes_sent'], 4)
- ); ?></td>
- <td class="value"><?php echo
- implode(' ',
- PMA_formatByteDown(
- ($server_status['Bytes_received'] + $server_status['Bytes_sent'])
- * $hour_factor, 4)
- ); ?></td>
- </tr>
- </tbody>
- </table>
- <table id="serverstatusconnections" class="data">
- <thead>
- <tr>
- <th colspan="2"><?php echo $strConnections; ?></th>
- <th>ø <?php echo $strPerHour; ?></th>
- <th>%</th>
- </tr>
- </thead>
- <tbody>
- <tr class="odd">
- <th class="name"><?php echo $strMaxConnects; ?></th>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Max_used_connections'], 0); ?> </td>
- <td class="value">--- </td>
- <td class="value">--- </td>
- </tr>
- <tr class="even">
- <th class="name"><?php echo $strFailedAttempts; ?></th>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Aborted_connects'], 4, 0); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Aborted_connects'] * $hour_factor,
- 4, 2); ?></td>
- <td class="value"><?php echo
- $server_status['Connections'] > 0
- ? PMA_formatNumber(
- $server_status['Aborted_connects'] * 100 / $server_status['Connections'],
- 0, 2) . '%'
- : '--- '; ?></td>
- </tr>
- <tr class="odd">
- <th class="name"><?php echo $strAbortedClients; ?></th>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Aborted_clients'], 4, 0); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Aborted_clients'] * $hour_factor,
- 4, 2); ?></td>
- <td class="value"><?php echo
- $server_status['Connections'] > 0
- ? PMA_formatNumber(
- $server_status['Aborted_clients'] * 100 / $server_status['Connections'],
- 0, 2) . '%'
- : '--- '; ?></td>
- </tr>
- <tr class="even">
- <th class="name"><?php echo $strTotalUC; ?></th>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Connections'], 4, 0); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Connections'] * $hour_factor,
- 4, 2); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber(100, 0, 2); ?>%</td>
- </tr>
- </tbody>
- </table>
- <hr class="clearfloat" />
- <h3><?php echo
- sprintf($strQueryStatistics,
- PMA_formatNumber($server_status['Questions'], 0)); ?></h3>
- <table id="serverstatusqueriessummary" class="data">
- <thead>
- <tr>
- <th><?php echo $strTotalUC; ?></th>
- <th>ø <?php echo $strPerHour; ?></th>
- <th>ø <?php echo $strPerMinute; ?></th>
- <th>ø <?php echo $strPerSecond; ?></th>
- </tr>
- </thead>
- <tbody>
- <tr class="odd">
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Questions'], 4, 0); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber($server_status['Questions'] * $hour_factor,
- 3, 2); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber(
- $server_status['Questions'] * 60 / $server_status['Uptime'],
- 3, 2); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber(
- $server_status['Questions'] / $server_status['Uptime'],
- 3, 2); ?></td>
- </tr>
- </tbody>
- </table>
- <div id="serverstatusqueriesdetails">
- <?php
- // number of tables to split values into
- $tables = 2;
- $rows_per_table = (int) ceil(count($sections['com']['vars']) / $tables);
- $current_table = 0;
- $odd_row = true;
- $countRows = 0;
- $perc_factor = 100 / ($server_status['Questions'] - $server_status['Connections']);
- foreach ($sections['com']['vars'] as $name => $value) {
- $current_table++;
- if ($countRows === 0 || $countRows === $rows_per_table) {
- $odd_row = true;
- if ($countRows === $rows_per_table) {
- echo ' </tbody>' . "\n";
- echo ' </table>' . "\n";
- }
- ?>
- <table id="serverstatusqueriesdetails<?php echo $current_table; ?>" class="data">
- <col class="namecol" />
- <col class="valuecol" span="3" />
- <thead>
- <tr><th colspan="2"><?php echo $strQueryType; ?></th>
- <th>ø <?php echo $strPerHour; ?></th>
- <th>%</th>
- </tr>
- </thead>
- <tbody>
- <?php
- } else {
- $odd_row = !$odd_row;
- }
- $countRows++;
- // For the percentage column, use Questions - Connections, because
- // the number of connections is not an item of the Query types
- // but is included in Questions. Then the total of the percentages is 100.
- $name = str_replace('Com_', '', $name);
- $name = str_replace('_', ' ', $name);
- ?>
- <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
- <th class="name"><?php echo htmlspecialchars($name); ?></th>
- <td class="value"><?php echo PMA_formatNumber($value, 4, 0); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber($value * $hour_factor, 4, 2); ?></td>
- <td class="value"><?php echo
- PMA_formatNumber($value * $perc_factor, 0, 2); ?>%</td>
- </tr>
- <?php
- }
- ?>
- </tbody>
- </table>
- </div>
- <div id="serverstatussection">
- <?php
- //Unset used variables
- unset(
- $tables, $rows_per_table, $current_table, $countRows, $perc_factor,
- $hour_factor, $sections['com'],
- $server_status['Aborted_clients'], $server_status['Aborted_connects'],
- $server_status['Max_used_connections'], $server_status['Bytes_received'],
- $server_status['Bytes_sent'], $server_status['Connections'],
- $server_status['Questions'], $server_status['Uptime']
- );
- foreach ($sections as $section_name => $section) {
- if (! empty($section['vars'])) {
- ?>
- <table class="data" id="serverstatussection<?php echo $section_name; ?>">
- <caption class="tblHeaders">
- <a class="top"
- href="<?php echo $PMA_PHP_SELF . '?' .
- PMA_generate_common_url() . '#serverstatus'; ?>"
- name="<?php echo $section_name; ?>"><?php echo $strPos1; ?>
- <?php echo
- ($GLOBALS['cfg']['MainPageIconic']
- ? '<img src="' . $GLOBALS['pmaThemeImage'] .
- 's_asc.png" width="11" height="9" align="middle" alt="" />'
- : ''); ?>
- </a>
- <?php
- if (! empty($section['title'])) {
- echo $section['title'];
- }
- ?>
- </caption>
- <col class="namecol" />
- <col class="valuecol" />
- <col class="descrcol" />
- <thead>
- <tr>
- <th><?php echo $strVar; ?></th>
- <th><?php echo $strValue; ?></th>
- <th><?php echo $strDescription; ?></th>
- </tr>
- </thead>
- <?php
- if (! empty($links[$section_name])) {
- ?>
- <tfoot>
- <tr class="tblFooters">
- <th colspan="3" class="tblFooters">
- <?php
- foreach ($links[$section_name] as $link_name => $link_url) {
- if ('doc' == $link_name) {
- echo PMA_showMySQLDocu($link_url, $link_url);
- } else {
- echo '<a href="' . $link_url . '">' . $link_name . '</a>' . "\n";
- }
- }
- unset($link_url, $link_name);
- ?>
- </th>
- </tr>
- </tfoot>
- <?php
- }
- ?>
- <tbody>
- <?php
- $odd_row = false;
- foreach ($section['vars'] as $name => $value) {
- $odd_row = !$odd_row;
- ?>
- <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
- <th class="name"><?php echo htmlspecialchars($name); ?></th>
- <td class="value"><?php
- if (isset($alerts[$name])) {
- if ($value > $alerts[$name]) {
- echo '<span class="attention">';
- } else {
- echo '<span class="allfine">';
- }
- }
- if ('%' === substr($name, -1, 1)) {
- echo PMA_formatNumber($value, 0, 2) . ' %';
- } elseif (is_numeric($value) && $value == (int) $value) {
- echo PMA_formatNumber($value, 4, 0);
- } elseif (is_numeric($value)) {
- echo PMA_formatNumber($value, 4, 2);
- } else {
- echo htmlspecialchars($value);
- }
- if (isset($alerts[$name])) {
- echo '</span>';
- }
- ?></td>
- <td class="descr">
- <?php
- if (isset($GLOBALS['strShowStatus' . $name . 'Descr'])) {
- echo $GLOBALS['strShowStatus' . $name . 'Descr'];
- }
- if (isset($links[$name])) {
- foreach ($links[$name] as $link_name => $link_url) {
- if ('doc' == $link_name) {
- echo PMA_showMySQLDocu($link_url, $link_url);
- } else {
- echo ' <a href="' . $link_url . '">' . $link_name . '</a>' .
- "\n";
- }
- }
- unset($link_url, $link_name);
- }
- ?>
- </td>
- </tr>
- <?php
- }
- unset($name, $value);
- ?>
- </tbody>
- </table>
- <?php
- }
- }
- unset($section_name, $section, $sections, $server_status, $odd_row, $alerts);
- ?>
- </div>
- <?php
- /* if the server works as master or slave in replication process, display useful information */
- if ($server_master_status_run || $server_slave_status_run)
- {
- ?>
- <hr class="clearfloat" />
- <h3><a name="replication"></a><?php echo $strReplicationStatus; ?></h3>
- <?php
-
- foreach ($replication_types as $type)
- {
- if (${"server_{$type}_status_run"})
- {
- ?>
- <h4><?php echo ${"strReplicationStatus_{$type}"}; ?></h4>
- <?php
- ?>
- <table id="server<?php echo $type; ?>replicationsummary" class="data">
-
- <thead>
- <tr>
- <th><?php echo $strVar; ?></th>
- <th><?php echo $strValue; ?></th>
- </tr>
- </thead>
- <tbody>
- <?php
- $odd_row = true;
- foreach(${"{$type}_variables"} as $variable)
- {
- ?>
- <tr class="<?php echo $odd_row ? 'odd' : 'even'; ?>">
- <td class="name">
- <?php echo $variable; ?>
- </td>
- <td class="value">
- <?php
- if (${"{$type}_variables_alerts"}[$variable] == ${"server_{$type}_status"}[0][$variable])
- echo '<span class="attention">';
- if (${"{$type}_variables_oks"}[$variable] == ${"server_{$type}_status"}[0][$variable])
- echo '<span class="allfine">';
- else
- echo '<span>';
- echo ${"server_{$type}_status"}[0][$variable];
- echo '</span>';
- ?>
- </td>
- </tr>
- <?php
- $odd_row = ! $odd_row;
- }
- unset(${"server_{$type}_status"});
- ?>
- </tbody>
- </table>
- <?php
- }
- }
- unset($types);
- }
- ?>
- </div>
- <?php
- /**
- * Sends the footer
- */
- require_once './libraries/footer.inc.php';
- ?>