This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
phptsmadmin/htdocs/server.stats.php
2011-01-14 01:45:19 +11:00

104 lines
3.9 KiB
PHP

<?php
// $Header: /cvsroot/phptsmadmin/phpTSMadmin/htdocs/server.stats.php,v 1.6 2009/04/19 04:00:59 wurley Exp $
# Required Libraries
require './common.php';
$summaryInfo = objectCache('summaryinfo');
if (! isset($_REQUEST['mediaactions'])) {
$blockTitle['form'] = _('Graph Media Statistics.');
$blockBody['form'] = 'Please select the stats you would like to graph.';
$blockBody['form'] .= '<form action="cmd.php">';
$blockBody['form'] .= sprintf('<input type="hidden" name="cmd" value="%s" />',get_request('cmd','REQUEST'));
$blockBody['form'] .= '<select multiple size=10 name="mediaactions[]">';
foreach ($summaryInfo->mediaActions(true) as $action) {
$blockBody['form'] .= sprintf('<option value="%s">%s</option>',$action,$action);
}
$blockBody['form'] .= '</select><br />';
$blockBody['form'] .= '<input align="left" type="submit" name="submit" value="Go" />';
$blockBody['form'] .= sprintf('<input type="hidden" name="index" value="%s" />',$app['server']->getIndex());
$blockBody['form'] .= '</form>';
} else {
$mediawait = $summaryInfo->mediaActions();
$graph['mediawait']['total'] = 0;
$graph['mediawait']['count'] = 0;
$graph['thruput']['total'] = 0;
$graph['thruput']['count'] = 0;
$mode = array();
foreach ($_REQUEST['mediaactions'] as $action) {
if (isset($mediawait[$action]))
foreach ($mediawait[$action] as $index => $detail) {
$start = strtotime(tsmDate($detail['START_TIME'],'nomsec'));
$end = strtotime(tsmDate($detail['END_TIME'],'nosec'));
$graph['mediawait']['data'][$detail['ACTIVITY']][$end] = $detail['MEDIAW'];
$graph['mediawait']['total'] += $detail['MEDIAW'];
$graph['mediawait']['count']++;
@$mode[$detail['MEDIAW']]++;
$graph['thruput']['data'][$detail['ACTIVITY']][$end] = $detail['BYTES']/1024/($end+.1-$start);
}
# Drop the first and last entry
ksort($mode);
array_pop($mode);
$total = 0;
$counter = 0;
foreach ($mode as $index => $value) {
if ($counter) {
$total += $index * $value;
}
$counter++;
}
if ($counter)
$graph['mediawait']['mode'] = $total/$counter;
# Save Session
$_SESSION['graph'] = $graph;
# Media Wait Graph
$blockTitle['mediawait'] = sprintf(_('Migration Information for %s (%s) %s.%s.%s.%s'),
$app['server']->GetStatusDetail('SERVER_NAME'),
$app['server']->GetStatusDetail('PLATFORM'),
$app['server']->GetStatusDetail('VERSION'),
$app['server']->GetStatusDetail('RELEASE'),
$app['server']->GetStatusDetail('LEVEL'),
$app['server']->GetStatusDetail('SUBLEVEL'));
$blockBody['mediawait'] = '<table class="blockcitem">';
$blockBody['mediawait'] .= sprintf('<tr><th colspan=2 class="title">%s</th></tr>',_('Media Wait Graph'));
$blockBody['mediawait'] .= '<tr><td><table class="blockcitem" border=0>';
$blockBody['mediawait'] .= '<tr><td colspan=2>&nbsp;</td></tr>';
$blockBody['mediawait'] .= '</table></td>';
$blockBody['mediawait'] .= sprintf('<td align="right"><img src="image.server.stats.php?index=%s&activity=mediawait" /></td></tr>',
$app['server']->getIndex());
$blockBody['mediawait'] .= '</table>';
# Thruput Graph
$blockTitle['thruput'] = sprintf(_('Server Thruput for %s (%s) %s.%s.%s.%s'),
$app['server']->GetStatusDetail('SERVER_NAME'),
$app['server']->GetStatusDetail('PLATFORM'),
$app['server']->GetStatusDetail('VERSION'),
$app['server']->GetStatusDetail('RELEASE'),
$app['server']->GetStatusDetail('LEVEL'),
$app['server']->GetStatusDetail('SUBLEVEL'));
$blockBody['thruput'] = '<table class="blockcitem">';
$blockBody['thruput'] .= sprintf('<tr><th colspan=2 class="title">%s</th></tr>',_('Server Thruput Graph'));
$blockBody['thruput'] .= '<tr><td><table class="blockcitem" border=0>';
$blockBody['thruput'] .= '<tr><td colspan=2>&nbsp;</td></tr>';
$blockBody['thruput'] .= '</table></td>';
$blockBody['thruput'] .= sprintf('<td align="right"><img src="image.server.stats.php?index=%s&activity=thruput" /></td></tr>',
$app['server']->getIndex());
$blockBody['thruput'] .= '</table>';
}
}
# End
render_page($blockTitle,$blockBody);
?>