1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
|
<?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
*/
if (! defined('PHPMYADMIN')) {
exit;
}
/**
* Returns the html content for the query statistics
*
* @param PMA_ServerStatusData $ServerStatusData Server status data
*
* @return string
*/
function PMA_getHtmlForQueryStatistics($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'),
PMA_Util::formatNumber($total_queries, 0)
);
$retval .= ' ';
$retval .= PMA_Util::showMySQLDocu(
'server-status-variables',
false,
'statvar_Questions'
);
$retval .= '<br />';
$retval .= '<span>';
$retval .= 'ø ' . __('per hour:') . ' ';
$retval .= PMA_Util::formatNumber($total_queries * $hour_factor, 0);
$retval .= '<br />';
$retval .= 'ø ' . __('per minute:') . ' ';
$retval .= PMA_Util::formatNumber(
$total_queries * 60 / $ServerStatusData->status['Uptime'],
0
);
$retval .= '<br />';
if ($total_queries / $ServerStatusData->status['Uptime'] >= 1) {
$retval .= 'ø ' . __('per second:') . ' ';
$retval .= PMA_Util::formatNumber(
$total_queries / $ServerStatusData->status['Uptime'],
0
);
}
$retval .= '</span>';
$retval .= '</h3>';
$retval .= PMA_getHtmlForServerStatusQueriesDetails($ServerStatusData);
return $retval;
}
/**
* Returns the html content for the query details
*
* @param PMA_ServerStatusData $ServerStatusData Server status data
*
* @return string
*/
function PMA_getHtmlForServerStatusQueriesDetails($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);
$odd_row = true;
//(- $ServerStatusData->status['Connections']);
$perc_factor = 100 / $total_queries;
$retval = '<table id="serverstatusqueriesdetails" '
. 'class="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>%</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) {
$odd_row = !$odd_row;
// 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 class="';
$retval .= $odd_row ? 'odd' : 'even';
$retval .= '">';
$retval .= '<th class="name">' . htmlspecialchars($name) . '</th>';
$retval .= '<td class="value">';
$retval .= htmlspecialchars(PMA_Util::formatNumber($value, 5, 0, true));
$retval .= '</td>';
$retval .= '<td class="value">';
$retval .= htmlspecialchars(
PMA_Util::formatNumber($value * $hour_factor, 4, 1, true)
);
$retval .= '</td>';
$retval .= '<td class="value">';
$retval .= htmlspecialchars(
PMA_Util::formatNumber($value * $perc_factor, 0, 2)
);
$retval .= '</td>';
$retval .= '</tr>';
}
$retval .= '</tbody>';
$retval .= '</table>';
$retval .= '<div id="serverstatusquerieschart"></div>';
$retval .= '<div id="serverstatusquerieschart_data" style="display:none;">';
if ($other_sum > 0) {
$chart_json[__('Other')] = $other_sum;
}
$retval .= htmlspecialchars(json_encode($chart_json));
$retval .= '</div>';
return $retval;
}
?>
|