Spade
Mini Shell
| Directory:~$ /proc/self/root/usr/local/lsws/admin/html.6.0.12/service/ |
| [Home] [System Details] [Kill Me] |
<?php
$stats = new STATS;
$stats->parse_all();
function getSelectOptions($selType, $selValue)
{
if ($selType == 'REFRESH')
{
$options = array('0'=>'Stop',
'10'=>'10 Seconds','15'=>'15
Seconds',
'30'=>'30 Seconds','60'=>'60
Seconds',
'120' => '2 minutes', '300' =>
'5 minutes');
}
else if ($selType == 'SHOW_TOP')
{
$options = array('5'=>'Top 5',
'10'=>'Top 10', '20'=>'Top
20',
'50'=>'Top 50',
'0'=>'All');
}
else if ($selType == 'VH_SHOW_SORTBY')
{
$options = array(
'vhname'=>'Virtual Host Name',
'req_processing'=>'Requests in Processing',
'req_per_sec'=>'Request/Second',
'eap_process'=>'ExtApp Processes',
'eap_inuse'=>'EAProc In Use',
'eap_idle'=>'EAProc Idle',
'eap_waitQ'=>'EAProc WaitQ',
'eap_req_per_sec'=>'EAProc Req/Sec');
}
else if ($selType == 'EAP_SHOW_SORTBY')
{
$options = array(
'vhost'=>'Scope',
'type'=>'Type',
'extapp'=>'Name',
'config_max_conn'=>'Max CONN',
'effect_max_conn'=>'Eff Max',
'pool_size'=>'Pool',
'inuse_conn'=>'In Use',
'idle_conn'=>'Idle',
'waitqueue_depth'=>'WaitQ',
'req_per_sec'=>'Req/Sec');
}
return DUtil::genOptions($options, $selValue);
}
$refresh =
DUtil::getGoodVal(DUtil::grab_input("request",'refresh'));
$vh_show_ind =
DUtil::getGoodVal(DUtil::grab_input("request","vh_show_ind"));
$vh_show_top =
DUtil::getGoodVal(DUtil::grab_input("request","vh_show_top"));
$vh_show_filter =
DUtil::getGoodVal(DUtil::grab_input("request","vh_show_filter","string"));
$vh_show_sort =
DUtil::getGoodVal(DUtil::grab_input("request","vh_show_sort","string"));
$eap_show_ind =
DUtil::getGoodVal(DUtil::grab_input("request","eap_show_ind"));
$eap_show_top =
DUtil::getGoodVal(DUtil::grab_input("request","eap_show_top"));
$eap_show_filter =
DUtil::getGoodVal(DUtil::grab_input("request","eap_show_filter","string"));
$eap_show_sort =
DUtil::getGoodVal(DUtil::grab_input("request","eap_show_sort","string"));
$cur_time = gmdate("D M j H:i:s T");
$server_info = "server {$service->serv['name']} snapshot
at $cur_time";
// setting defaults
if ($vh_show_ind == '') {
$vh_show_ind = 'Show';
}
if ($vh_show_top === '') {
$vh_show_top = '5';
}
if ($vh_show_sort == '') {
$vh_show_sort = 'req_per_sec';
}
if ($eap_show_ind == '') {
$eap_show_ind = 'Show';
}
if ($eap_show_top === '') {
$eap_show_top = '5';
}
if ($eap_show_sort == '') {
$eap_show_sort = 'req_per_sec';
}
if ($refresh <= 1 && $refresh != 0) {
$refresh = 5;
}
if($refresh >= 2) {
echo '<META http-equiv="Refresh" content=' .
$refresh . '>';
}
?>
<form name="rpt" method="get"><input
type="hidden" name="vl" value="2">
<input type="hidden" name="vh_show_ind"
value="<?php echo $vh_show_ind;?>">
<input type="hidden" name="eap_show_ind"
value="<?php echo $eap_show_ind;?>">
<div class="bottom_bar">
<span class="h2_font">Real-Time
Statistics</span> <?php echo
$server_info;?>
<span style="float:right">Refresh Interval: <select
onChange='document.rpt.submit();' name="refresh"
class="th-clr">
<?php
echo( getSelectOptions('REFRESH', $refresh) );
?>
</select></span>
</div>
<div style="margin-top:20px;">
<div
style="width:350px;display:inline-block;vertical-align:top;margin-right:20px;">
<table class="xtbl" width="100%"
border="0"
cellpadding="3" cellspacing="1">
<tr>
<td class="xtbl_title" colspan=2>Server
Health</td>
</tr>
<?php
$buf = '<tr><td width=120
class="xtbl_label_vert">Uptime</td><td
class="xtbl_value">'. ucwords($stats->uptime)
.'</td></tr>';
$buf .= '<tr><td width=120
class="xtbl_label_vert">Load</td><td
class="xtbl_value">' . $stats->load_avg
.'</td></tr>' ."\n";
$blocked_count = count($stats->blocked_ip);
$blocked_sample = 'NONE';
if ($blocked_count > 14) {
$blocked_sample = join(', ',
array_slice($stats->blocked_ip, 0, 14) );
$blocked_sample .= '<br> ... <br>Total ' .
$blocked_count . ' blocked <a
target=_new href="blockip_html.php">Show All</a>';
}
else if ($blocked_count > 0) {
$blocked_sample = join(', ', $stats->blocked_ip);
}
$buf .= '<tr><td width=120
class="xtbl_label_vert">Anti-DDoS Blocked IP</td><td
class="xtbl_value">' . $blocked_sample
.'</td></tr>' ."\n";
echo $buf;
?>
</table></div>
<div style="width:560px;display:inline-block;">
<table class="xtbl" width="100%"
border="0"
cellpadding="3" cellspacing="1">
<tr>
<td class="xtbl_title"
colspan="6">Server</td>
</tr>
<?php
$buf = '<tr><td
class="xtbl_label_vert">Network Throughput</td>'
. '<td class="xtbl_label_vert"><a target=_new
href="graph_html.php?gtitle=Plain
Traffic&vhost=&extapp=&items=bps_in,bps_out&titles=IN Plain
KB/s,OUT Plain KB/s&colors=ff6600,8ad688&yaxis=KBytes /
Second"><img src="/static/images/icons/graph.gif"
border=0></a></td>'
. '<td class="xtbl_value" >Http In</td><td
class="xtbl_value">' . number_format($stats->bps_in) .
'KB</td>'
. '<td class="xtbl_value" >Http
Out</td><td class="xtbl_value">' .
number_format($stats->bps_out) .
'KB</td></tr>'."\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td width=1 class="xtbl_label_vert"><a
target=_new href="graph_html.php?gtitle=SSL
Traffic&vhost=&extapp=&items=ssl_bps_in,ssl_bps_out&titles=IN
SSL KB/s,OUT SSL KB/s&colors=ff6600,8ad688&yaxis=KBytes /
Second"><img src="/static/images/icons/graph.gif"
border=0></a></td>'
. '<td class="xtbl_value" >Https
In</td><td class="xtbl_value">' .
number_format($stats->ssl_bps_in) . 'KB</td>'
. '<td class="xtbl_value" >Https
Out</td><td class="xtbl_value">' .
number_format($stats->ssl_bps_out) .
'KB</td></tr>'."\n";
$buf .= '<tr><td
class="xtbl_label_vert">Connections</td>'
. '<td class="xtbl_label_vert"><a target=_new
href="graph_html.php?gtitle=Connections
General&vhost=&extapp=&items=max_conn,idle_conn&titles=Max
Connections,Idle
Connections&colors=ff6600,8ad688&yaxis=Connections"><img
src="/static/images/icons/graph.gif"
border=0></a></td>'
. '<td class="xtbl_value" >Max</td><td
class="xtbl_value">' . number_format($stats->max_conn)
. '</td>'
. '<td class="xtbl_value" >Idle</td><td
class="xtbl_value">' .
number_format($stats->idle_conn) .
'</td></tr>'."\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td class="xtbl_label_vert"><a target=_new
href="graph_html.php?gtitle=Plain
Connections&vhost=&extapp=&items=plain_conn,avail_conn&titles=Used
Plain Connections,Free Plain
Connections&colors=ff6600,8ad688&yaxis=Connections"><img
src="/static/images/icons/graph.gif"
border=0></a></td>'
. '<td class="xtbl_value" >Http
Used</td><td class="xtbl_value">' .
number_format($stats->plain_conn) . '</td>'
. '<td class="xtbl_value" >Http
Free</td><td class="xtbl_value">' .
number_format($stats->avail_conn) .
'</td></tr>'."\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td class="xtbl_label_vert"><a target=_new
href="graph_html.php?gtitle=SSL
Connections&vhost=&extapp=&items=ssl_conn,avail_ssl_conn&titles=Used
SSL Connections,Free SSL
Connections&colors=ff6600,8ad688&yaxis=Connections"><img
src="/static/images/icons/graph.gif"
border=0></a></td>'
. '<td class="xtbl_value" >Https
Used</td><td class="xtbl_value">' .
number_format($stats->ssl_conn) . '</td>'
. '<td class="xtbl_value" >Https
Free</td><td class="xtbl_value">' .
number_format($stats->avail_ssl_conn) .
'</td></tr>'."\n";
$buf .= '<tr><td
class="xtbl_label_vert">Requests <a
target=_newreq
href="serviceMgr.php?vl=4">(Details)</a></td>'
. '<td class="xtbl_label_vert"><a target=_new
href="graph_html.php?gtitle=VHOST
Requests:Server&vhost=_Server&extapp=&items=req_processing,req_per_sec,cache_hits_per_sec&titles=Requests
In-Processing,Requests Per Second,Cache Hits Per
Second&colors=ff6600,8ad688,0066ff&yaxis=Requests"><img
src="/static/images/icons/graph.gif"
border=0></a></td>'
. '<td class="xtbl_value" >In
Processing</td><td class="xtbl_value">' .
number_format($stats->serv->req_processing). '</td>'
. '<td class="xtbl_value" >Req/Sec</td><td
class="xtbl_value">' .
number_format($stats->serv->req_per_sec, 1) .
'</td></tr>'."\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td class="xtbl_label_vert"></td>'
. '<td class="xtbl_value" >Total
Req</td><td colspan="3"
class="xtbl_value">' .
number_format($stats->serv->req_total).
"</td></tr>\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td class="xtbl_label_vert"></td>'
. '<td class="xtbl_value" >Total Static
Hits</td><td class="xtbl_value">' .
number_format($stats->serv->total_static_hits) .
'</td>'
. '<td class="xtbl_value" >Static
Hits/Sec</td><td class="xtbl_value">' .
number_format($stats->serv->static_hits_per_sec, 1) .
"</td></tr>\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td class="xtbl_label_vert"></td>'
. '<td class="xtbl_value" >Total Public Cache
Hits</td><td class="xtbl_value">' .
number_format($stats->serv->total_cache_hits) .
'</td>'
. '<td class="xtbl_value" >Public Cache
Hits/Sec</td><td class="xtbl_value">' .
number_format($stats->serv->cache_hits_per_sec, 1) .
"</td></tr>\n";
$buf .= '<tr><td
class="xtbl_value"> </td>'
. '<td class="xtbl_label_vert"></td>'
. '<td class="xtbl_value" >Total Private Cache
Hits</td><td class="xtbl_value">' .
number_format($stats->serv->total_private_cache_hits) .
'</td>'
. '<td class="xtbl_value" >Private Cache
Hits/Sec</td><td class="xtbl_value">' .
number_format($stats->serv->private_cache_hits_per_sec, 1) .
"</td></tr>\n";
$total_req = $stats->serv->req_total;
if ($total_req == 0) {
$total_req = 1;
$cache_hit_rate = 0;
}
else {
$cacheable_req = $total_req -
$stats->serv->total_static_hits;
if ($cacheable_req == 0)
$cache_hit_rate = 0;
else
$cache_hit_rate =
number_format($stats->serv->total_cache_hits / $total_req, 4) * 100;
}
echo $buf;
?>
</table></div>
</div>
<div>
<table class="xtbl" width="100%"
border="0" cellpadding="3"
cellspacing="1">
<tr class="xtbl_title">
<td colspan="12">
<table width="100%" border="0"
cellpadding="3">
<tr>
<td>Virtual Host</td>
<td>
<?php
$buf = '';
if ($vh_show_ind == 'Show') {
$buf .= '<button name="vh_show"
type="button"
onclick="document.rpt.vh_show_ind.value=\'Hide\';document.rpt.submit();">Hide</button>';
} else {
$buf .= '<button name="vh_show"
type="button"
onclick="document.rpt.vh_show_ind.value=\'Show\';document.rpt.submit();">Show</button>';
}
$buf .= '</td><td>Display: <select
class="th-clr" name="vh_show_top">'
. getSelectOptions('SHOW_TOP', $vh_show_top)
. '</select></td>'."\n";
$buf .= '<td>Filter by Name (take regExp): <input
type="text" name="vh_show_filter" value="'
. $vh_show_filter . '"></td>' ."\n";
$buf .= '<td>Sort by: <select class="th-clr"
name="vh_show_sort">'
. getSelectOptions('VH_SHOW_SORTBY', $vh_show_sort)
. '</select></td>'."\n";
$buf .= '<td><input name="vh_show_apply"
value="Apply" type="submit">';
echo $buf;
?>
</td>
</tr>
</table>
</td>
</tr>
<?php
if ($vh_show_ind == 'Show') {
$buf = '<tr class="xtbl_label_vert">'
. '<td>VH Name</td><td> </td>'
. '<td>Req in
Processing</td><td>Req/Sec</td><td>Total Static
Hits | Hits/Sec</td>'
. '<td>Public Cache Hits |
Hits/Sec</td><td>Private Cache Hits | Hits/Sec</td>'
. '<td>ExtApp Processes</td><td>EAProc In
Use</td><td>EAProc Idle</td>'
. '<td>EAProc WaitQ</td><td>EAProc
Req/Sec</td></tr>'
. "\n";
$vhlist = $stats->apply_vh_filter($vh_show_top, $vh_show_filter,
$vh_show_sort);
foreach( $vhlist as $vhname ) {
if ($vhname == '_Server')
continue;
$vh = $stats->vhosts[$vhname];
$buf .= '<tr class="xtbl_value"><td>' .
$vhname . '</td>';
$buf .= '<td width=1><a target=_new
href="graph_html.php?gtitle=VHOST Requests: '
. urlencode($vhname) . '&vhost=' . urlencode($vhname)
.
'&extapp=&items=req_processing,req_per_sec,cache_hits_per_sec&titles=Requests
In-Processing,Requests Per Second,Cache Hits Per
Second&colors=ff6600,8ad688,0066ff&yaxis=Requests"><img
src="/static/images/icons/graph.gif"
border=0></a></td>';
$buf .= '<td
align="center">'.number_format($vh->req_processing).'</td>';
$buf .= '<td
align="center">'.number_format($vh->req_per_sec,1).'</td>';
$buf .= '<td
align="center">'.number_format($vh->total_static_hits).
' | ' .
number_format($vh->static_hits_per_sec,1).'</td>';
$buf .= '<td
align="center">'.number_format($vh->total_cache_hits).
' | '
.number_format($vh->cache_hits_per_sec,1).'</td>';
$buf .= '<td
align="center">'.number_format($vh->total_private_cache_hits).
' | '
.number_format($vh->private_cache_hits_per_sec,1).'</td>';
$buf .= '<td
align="center">'.number_format($vh->eap_process).'</td>';
$buf .= '<td
align="center">'.number_format($vh->eap_inuse).'</td>';
$buf .= '<td
align="center">'.number_format($vh->eap_idle).'</td>';
$buf .= '<td
align="center">'.number_format($vh->eap_waitQ).'</td>';
$buf .= '<td
align="center">'.number_format($vh->eap_req_per_sec,1).'</td>';
$buf .= '</tr>'."\n";
}
echo $buf;
}
?>
</table>
</div>
<div>
<table class="xtbl" width="100%"
border="0" cellpadding="3"
cellspacing="1">
<?php
$buf = '<tr class="xtbl_title"><td
colspan=10>'
. '<table width="100%" border="0"
cellpadding="3">'
. '<tr><td>External
Application</td><td>';
if ($eap_show_ind == 'Show') {
$buf .= '<button name="eap_show"
type="button"
onclick="document.rpt.eap_show_ind.value=\'Hide\';document.rpt.submit();">Hide</button>';
} else {
$buf .= '<button name="eap_show"
type="button"
onclick="document.rpt.eap_show_ind.value=\'Show\';document.rpt.submit();">Show</button>';
}
$buf .= '</td><td>Display: <select
class="th-clr" name="eap_show_top">'
. getSelectOptions('SHOW_TOP', $eap_show_top)
. '</select></td>'."\n";
$buf .= '<td>Filter by Name (take regExp): <input
type="text" name="eap_show_filter" value="'
. $eap_show_filter . '"></td>' ."\n";
$buf .= '<td>Sort by: <select class="th-clr"
name="eap_show_sort">'
. getSelectOptions('EAP_SHOW_SORTBY', $eap_show_sort)
. '</select></td>'."\n";
$buf .= '<td><input name="eap_show_apply"
value="Apply" type="submit"></td>'
. '</tr></table></td></tr>' .
"\n";
if ($eap_show_ind == 'Show') {
$buf .= '<tr class="xtbl_label_vert">'
.
'<td>Scope</td><td>Type</td><td>Name</td><td> </td>'
. '<td>Max CONN</td><td>Eff
Max</td><td>Pool</td>'
. '<td>In
Use</td><td>Idle</td><td>WaitQ</td><td>Req/Sec</td>'
. "</tr>\n";
$exapps = $stats->apply_eap_filter($eap_show_top, $eap_show_filter,
$eap_show_sort);
foreach( $exapps as $eap ) {
$buf .= '<tr class="xtbl_value"><td>' .
$eap->vhost . '</td>';
$buf .= '<td align="center">' . $eap->type
. '</td>';
$buf .= '<td align="center">' .
$eap->extapp . '</td>';
$buf .= '<td width=1><a target=_new
href="graph_html.php?gtitle=VHOST ExtApp: '
.urlencode($eap->vhost).'&vhost='.urlencode($eap->vhost)
.'&extapp='.urlencode($eap->extapp).
'&items=req_per_sec,inuse_conn,waitqueue_depth&titles=Requests
Per Second,In-Use Connections,Wait-Queue
Depth&colors=ff6600,8ad688,003366&yaxis=Request/Connection"><img
src="/static/images/icons/graph.gif" border=0>'
. '</a></td>';
$buf .= '<td
align="center">'.number_format($eap->config_max_conn).'</td>';
$buf .= '<td
align="center">'.number_format($eap->effect_max_conn).'</td>';
$buf .= '<td
align="center">'.number_format($eap->pool_size).'</td>';
$buf .= '<td
align="center">'.number_format($eap->inuse_conn).'</td>';
$buf .= '<td
align="center">'.number_format($eap->idle_conn).'</td>';
$buf .= '<td
align="center">'.number_format($eap->waitqueue_depth).'</td>';
$buf .= '<td
align="center">'.number_format($eap->req_per_sec,1).'</td>';
$buf .= '</tr>'."\n";
}
}
echo $buf;
?>
</table>
</div>
</form>