Skip to content

Instantly share code, notes, and snippets.

@djamol
Created June 1, 2023 13:29
Show Gist options
  • Save djamol/a1e8a8f67f9790d6111493d3966ca219 to your computer and use it in GitHub Desktop.
Save djamol/a1e8a8f67f9790d6111493d3966ca219 to your computer and use it in GitHub Desktop.
<html>
<head>
<meta http-equiv="refresh" content="5000" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous">
<link href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" media="all" />
</head>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<?php
//phpinfo();
$out= exec("cgi_status json",$out2);
$out =json_decode($out,true);
echo '<div class="container">';
echo '<div class="row">';
echo '<div class="col-md-4"><b>Server :'.$_SERVER['REMOTE_ADDR'].'</b></div>';
echo '<div class="col-md-4">Pool :'.$out['pool'].'</div>';
echo '<div class="col-md-4">process manager :'.$out['process manager'].'</div>';
echo '<div class="col-md-4">start time :'.$out['start time'].'</div>';
echo '<div class="col-md-4">start since :'.$out['start since'].'</div>';
echo '<div class="col-md-4">accepted conn :'.$out['accepted conn'].'</div>';
echo '<div class="col-md-4">listen queue :'.$out['listen queue'].'</div>';
echo '<div class="col-md-4">max listen queue :'.$out['max listen queue'].'</div>';
echo '<div class="col-md-4">listen queue len :'.$out['listen queue len'].'</div>';
echo '<div class="col-md-4">idle processes :'.$out['idle processes'].'</div>';
echo '<div class="col-md-4">active processes :'.$out['active processes'].'</div>';
echo '<div class="col-md-4">total processes :'.$out['total processes'].'</div>';
echo '<div class="col-md-4">max active processes :'.$out['max active processes'].'</div>';
echo '<div class="col-md-4">max children reached :'.$out['max children reached'].'</div>';
echo '<div class="col-md-4">slow requests :'.$out['slow requests'].'</div>';
echo '</div></div>';
//var_dump($out);
//
/*
echo '<div class="container">';
echo '<div class="row">';
$r=3;
$int=false;
foreach ($out as $k => $v)
{
if(strpos($v,'pool')!== false){
echo '</div><div class="row">';
$int=true;
$do=true;
}
if(strpos($v,'*')!== false)
{
$int=false;
//echo "sdsf";
$r++;
echo '</div>';
if($r==4){ echo '</div><div class="row">'; $r=0;}
echo '<div class="col-md-3">';
}else{
if($int)
echo '<div class="col">';
if($do)echo $v.'<br>';
if($int)
echo '</div>';
}
}
*/
?>
<div class="mt-5">
<table class="table table-striped table-bordered display nowrap" id="processes"></table>
</div>
<script>
var indiaData=<?php echo json_encode($out); ?>;
function render(data, type, row, meta){
if(type === 'display'){
data = '<a href="/en/state/?id=' + row.id + '">' + data + '</a>';
}
return data;
}
$('#processes').DataTable({
data: indiaData.processes,
columns: [
{ "data": "pid", "name": "Pid", "title": "Process ID", "render": render },
{ "data": "state", "name": "Status", "title": "Status" },
{ "data": "start time", "name": "Time", "title": "Time" },
{ "data": "start since", "name": "Since", "title": "Since" },
{ "data": "requests", "name": "requests", "title": "requests" },
{ "data": "request duration", "name": "request duration", "title": "request duration" },
{ "data": "request method", "name": "request method", "title": "request method" },
{ "data": "request uri", "name": "request uri", "title": "request uri" },
{ "data": "content length", "name": "content length", "title": "content length" },
{ "data": "requests", "name": "requests", "title": "requests" },
{ "data": "user", "name": "user", "title": "user" },
{ "data": "script", "name": "script", "title": "script" },
{ "data": "last request cpu", "name": "CPU", "title": "CPU" },
{ "data": "last request memory", "name": "Memory", "title": "Memory" }
],
rowReorder: {
selector: 'td:nth-child(2)'
},
responsive: true,
"order": [[ 1, "desc" ]]
});
</script>
</div>
</body>
</html>
@djamol
Copy link
Author

djamol commented Jun 1, 2023

[root@ip-172-26-0-174 /]# cat /usr/bin/cgi_status

echo "Type:$1";
if which cgi-fcgi -v "$1" >/dev/null 2>&1; then   SCRIPT_NAME=/p_status SCRIPT_FILENAME=/p_status QUERY_STRING="$1&full" REQUEST_METHOD=GET cgi-fcgi -bind -connect 127.0.0.1:9000; else   yum install -y fcgi; fi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment