123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * functions for displaying query statistics for the server
- *
- * @usedby server_status_queries.php
- *
- * @package PhpMyAdmin
- */
- namespace PhpMyAdmin\Server\Status;
- use PhpMyAdmin\Server\Status\Data;
- use PhpMyAdmin\Util;
- /**
- * PhpMyAdmin\Server\Status\Queries class
- *
- * @package PhpMyAdmin
- */
- class Queries
- {
- /**
- * Returns the html content for the query statistics
- *
- * @param Data $serverStatusData Server status data
- *
- * @return string
- */
- public static function getHtmlForQueryStatistics(Data $serverStatusData)
- {
- $retval = '';
- $hour_factor = 3600 / $serverStatusData->status['Uptime'];
- $used_queries = $serverStatusData->used_queries;
- $total_queries = array_sum($used_queries);
- $retval .= '<h3 id="serverstatusqueries">';
- /* l10n: Questions is the name of a MySQL Status variable */
- $retval .= sprintf(
- __('Questions since startup: %s'),
- Util::formatNumber($total_queries, 0)
- );
- $retval .= ' ';
- $retval .= Util::showMySQLDocu(
- 'server-status-variables',
- false,
- 'statvar_Questions'
- );
- $retval .= '<br />';
- $retval .= '<span>';
- $retval .= 'ø ' . __('per hour:') . ' ';
- $retval .= Util::formatNumber($total_queries * $hour_factor, 0);
- $retval .= '<br />';
- $retval .= 'ø ' . __('per minute:') . ' ';
- $retval .= Util::formatNumber(
- $total_queries * 60 / $serverStatusData->status['Uptime'],
- 0
- );
- $retval .= '<br />';
- if ($total_queries / $serverStatusData->status['Uptime'] >= 1) {
- $retval .= 'ø ' . __('per second:') . ' ';
- $retval .= Util::formatNumber(
- $total_queries / $serverStatusData->status['Uptime'],
- 0
- );
- }
- $retval .= '</span>';
- $retval .= '</h3>';
- $retval .= self::getHtmlForDetails($serverStatusData);
- return $retval;
- }
- /**
- * Returns the html content for the query details
- *
- * @param Data $serverStatusData Server status data
- *
- * @return string
- */
- public static function getHtmlForDetails(Data $serverStatusData)
- {
- $hour_factor = 3600 / $serverStatusData->status['Uptime'];
- $used_queries = $serverStatusData->used_queries;
- $total_queries = array_sum($used_queries);
- // reverse sort by value to show most used statements first
- arsort($used_queries);
- //(- $serverStatusData->status['Connections']);
- $perc_factor = 100 / $total_queries;
- $retval = '<table id="serverstatusqueriesdetails" '
- . 'class="width100 data sortable noclick">';
- $retval .= '<col class="namecol" />';
- $retval .= '<col class="valuecol" span="3" />';
- $retval .= '<thead>';
- $retval .= '<tr><th>' . __('Statements') . '</th>';
- $retval .= '<th>';
- /* l10n: # = Amount of queries */
- $retval .= __('#');
- $retval .= '</th>';
- $retval .= '<th>ø ' . __('per hour')
- . '</th>';
- $retval .= '<th>%</div></th>';
- $retval .= '</tr>';
- $retval .= '</thead>';
- $retval .= '<tbody>';
- $chart_json = array();
- $query_sum = array_sum($used_queries);
- $other_sum = 0;
- foreach ($used_queries as $name => $value) {
- // 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(array('Com_', '_'), array('', ' '), $name);
- // Group together values that make out less than 2% into "Other", but only
- // if we have more than 6 fractions already
- if ($value < $query_sum * 0.02 && count($chart_json)>6) {
- $other_sum += $value;
- } else {
- $chart_json[$name] = $value;
- }
- $retval .= '<tr>';
- $retval .= '<th class="name">' . htmlspecialchars($name) . '</th>';
- $retval .= '<td class="value">';
- $retval .= htmlspecialchars(
- Util::formatNumber($value, 5, 0, true)
- );
- $retval .= '</td>';
- $retval .= '<td class="value">';
- $retval .= htmlspecialchars(
- Util::formatNumber($value * $hour_factor, 4, 1, true)
- );
- $retval .= '</td>';
- $retval .= '<td class="value">';
- $retval .= htmlspecialchars(
- Util::formatNumber($value * $perc_factor, 0, 2)
- );
- $retval .= '</td>';
- $retval .= '</tr>';
- }
- $retval .= '</tbody>';
- $retval .= '</table>';
- $retval .= '<div id="serverstatusquerieschart" class="width100" data-chart="';
- if ($other_sum > 0) {
- $chart_json[__('Other')] = $other_sum;
- }
- $retval .= htmlspecialchars(json_encode($chart_json), ENT_QUOTES);
- $retval .= '"></div>';
- return $retval;
- }
- }
|