新增SPGW统计

This commit is contained in:
lai
2024-11-19 18:01:38 +08:00
parent 5fba2be54d
commit 6d5307cbce
3 changed files with 399 additions and 2 deletions

View File

@@ -13,6 +13,7 @@ define(iGRS_SYSTYPENO,387);
define(TMG_SYSTYPENO,391); define(TMG_SYSTYPENO,391);
define(AMRMG_SYSTYPENO,392); define(AMRMG_SYSTYPENO,392);
define(RCS_SYSTYPENO,364); define(RCS_SYSTYPENO,364);
define(SPGW_SYSTYPENO,362);
global $OMC_server; global $OMC_server;
$cstaDbConn=mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], $csta_db); $cstaDbConn=mysqli_connect($OMC_server[0]['host'],$OMC_server[0]['user'],$OMC_server[0]['password'], $csta_db);
@@ -135,7 +136,7 @@ function GetCstaDataByDay($cstaConf,$startTime,$endTime,$dataType,$keyOneConditi
$sql="select {$fieldList} from CSTA_DB.{$dataTable} where csta_datetime >= '{$startTime}' and csta_datetime <= '{$endTime}' {$keyCondition} "; $sql="select {$fieldList} from CSTA_DB.{$dataTable} where csta_datetime >= '{$startTime}' and csta_datetime <= '{$endTime}' {$keyCondition} ";
if(strcmp($condition,"")) if(strcmp($condition,""))
$sql.=" and $condition "; $sql.=" and $condition ";
if(0) if($DEBUG)
echo "$sql<br>"; echo "$sql<br>";
$res=mysqli_query($cstaDbConn,$sql); $res=mysqli_query($cstaDbConn,$sql);
$num=mysqli_num_rows($res); $num=mysqli_num_rows($res);

View File

@@ -248,6 +248,10 @@ case RCS_SYSTYPENO:
} }
} }
break; break;
case SPGW_SYSTYPENO:
include("./spgw_day.php");
break;
default: default:
exit("can not find system({$pageConf[SysTypeNo]})"); exit("can not find system({$pageConf[SysTypeNo]})");
break; break;

View File

@@ -0,0 +1,392 @@
<?php
$cstaConf=GetCstaConf($sysTypeNo);
if(0)
{
echo "sel_date_from=$sel_date_from,sel_date_to=$sel_date_to<br>";
echo "<pre>";
print_r($cstaConf);
echo "</pre>";
}
//SPGW ok
$slot=$sel_date_from-$sel_date_to+1;
$startTime=date("Y-m-d H:i:s",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
$endTime=date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-$sel_date_to,date("Y")));
//echo "startTime=$startTime,endTime=$endTime<br>";
$cstaData=GetCstaDataByDay($cstaConf,$startTime,$endTime,"detail");
if(0)
{
echo "<pre>";
print_r($cstaData);
echo "</pre>";
}
//返回每条数据
function printVolumeWithUnits($bytes) {
$units = ["B", "KB", "MB", "GB", "TB"];
$unit_index = 0;
$volume = $bytes;
// 计算单位
while ($volume >= 1024 && $unit_index < count($units) - 1) {
$volume /= 1024;
$unit_index++;
}
return round($volume, 2) . " " . $units[$unit_index]; // 返回计算后的值和单位 以及保留两位
}
$echartDown=printVolumeWithUnits($cstaData[0][downlink_total_volume]+0);
$echartUp=printVolumeWithUnits($cstaData[0][uplink_total_volume]+0);
global $cstaDbConn;
$dataTable=$cstaConf[DataObject][0][DetailDataTable];
$fieldList=$cstaConf[DataObject][0][DetailFieldList];
if(strlen($fieldList)){
$fieldList="$fieldList,csta_datetime";
}
$sql="select {$fieldList} from CSTA_DB.{$dataTable} where csta_datetime >= '{$startTime}' and csta_datetime <= '{$endTime}' ";
$res=mysqli_query($cstaDbConn,$sql);
//echo mysqli_error($cstaDbConn);
$num=mysqli_num_rows($res);
//set downArr upArr
$downDataArr=[];
$downDateArr=[];
$upDataArr=[];
$upDateArr=[];
for($i=0;$i<$num;$i++)
{
$row=@mysqli_fetch_array($res);
// echo "<pre>";
// print_r($row);
// echo "</pre>";
$downDataArr[]=$row[downlink_total_volume];
$downDateArr[]=$row[csta_datetime];
$upDataArr[]=$row[uplink_total_volume];
$upDateArr[]=$row[csta_datetime];
}
$upDateArrJson = json_encode($upDateArr);
$upDataArrJson = json_encode($upDataArr);
$downDataArrJson = json_encode($downDataArr);
$downDateArrArrJson = json_encode($downDateArr);
// echo "<pre>";
// print_r($upDataArr);
// echo "</pre>";
//Table-1
{
$table_title="SPGW Statistic&nbsp;&nbsp;Date:";
if($slot>1)
$table_title.=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")))." to ".date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_to,date("Y")));
else
$table_title.=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-$sel_date_from,date("Y")));
echo "<br><b><center>$table_title</center></b>";
echo "<table width=\"99%\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\" bordercolor=\"#666666\" bordercolordark=\"#FFFFFF\" bgcolor=\"#FFFFFF\">";
echo "<tr bgcolor=\"#E6E6E6\">";
echo "<td align=\"center\" width=\"11%\">Attempted Sess Est</td>";
echo "<td align=\"center\" width=\"11%\">Succ Sess Est</td>";
echo "<td align=\"center\" width=\"11%\">Attempted Ims Session Est</td>";
echo "<td align=\"center\" width=\"11%\">Succ Ims Sess Est</td>";
echo "<td align=\"center\" width=\"11%\">Attempted Delete Sess</td>";
echo "<td align=\"center\" width=\"11%\">Succ Delete Sess Sucess</td>";
echo "<td align=\"center\" width=\"11%\">Attempted Create Bearer</td>";
echo "<td align=\"center\" width=\"11%\">Succ Create Bearer</td>";
echo "<td align=\"center\" width=\"11%\">Attempted Ggsn Create Pdp</td>";
echo "</tr>";
$value=$cstaData[0][attempted_sess_est_num]+0;
echo "<td align=\"center\">$value</td>";
//Attempt
$value=$cstaData[0][succ_sess_est_num]+0;
echo "<td align=\"center\">$value</td>";
//Success
$value=$cstaData[0][attempted_ims_session_est_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//No Resource
$value=$cstaData[0][succ_ims_sess_est_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//Negotiation Fail
$value=$cstaData[0][attempted_delete_sess_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//Media Error
$value=$cstaData[0][succ_delete_sess_sucess_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//No Response
$value=$cstaData[0][attempted_create_bearer_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//General Error
$value=$cstaData[0][succ_create_bearer_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//Total Call Duration
$value=$cstaData[0][attempted_ggsn_create_pdp_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
echo "</tr>";
echo "<tr bgcolor=\"#E6E6E6\">";
echo "<td align=\"center\" width=\"11%\">Succ Ggsn Create Pdp</td>";
echo "<td align=\"center\" width=\"11%\">Attempted Ggsn Delete Pdp</td>";
echo "<td align=\"center\" width=\"11%\">Succ Ggsn Delete Pdp</td>";
echo "<td align=\"center\" width=\"11%\">Ps Pagin</td>";
echo "<td align=\"center\" width=\"11%\">Fail Ps Paging</td>";
echo "<td align=\"center\" width=\"11%\">Ims Paging</td>";
echo "<td align=\"center\" width=\"11%\">Fail Ims Paging</td>";
echo "<td align=\"center\" width=\"11%\">Uplink Total Volume</td>";
echo "<td align=\"center\" width=\"11%\">Downlink Total Volume</td>";
echo "</tr>";
//Average Call Duration
$value=$cstaData[0][succ_ggsn_create_pdp_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//Attempt
$value=$cstaData[0][attempted_ggsn_delete_pdp_num]+0;
echo "<td align=\"center\">$value</td>";
//Success
$value=$cstaData[0][succ_ggsn_delete_pdp_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//No Resource
$value=$cstaData[0][ps_pagin_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//Negotiation Fail
$value=$cstaData[0][fail_ps_paging_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//Media Error
$value=$cstaData[0][ims_paging_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//No Response
$value=$cstaData[0][fail_ims_paging_num]+0;
echo "<td align=\"center\">";
echo "$value<br>";
echo "</td>";
//General Error
$unitValue=$echartUp;
$value=$cstaData[0][uplink_total_volume];
echo "<td align=\"center\">";
echo "$unitValue<br>($value)";
echo "</td>";
//Total Call Duration
$unitValue=$echartDown;
$value=$cstaData[0][downlink_total_volume];
echo "<td align=\"center\">";
echo "$unitValue<br>($value)";
echo "</td>";
echo "</tr>";
echo "</table>";
}
// //Graphics-1
// {
// echo "<br><b>Service(Attempt) & Success/Failure</b><br>";
// unset($tmpData);
// unset($tmpColor);
// $tmpData[]=$cstaData[0][1][Attempt]+0;
// $tmpData[]=$cstaData[0][2][Attempt]+0;
// $tmpColor[]=array(0x99,0x00,0x33);
// $tmpColor[]=array(0x99,0x00,0xcc);
// $image=CreateImage(680,370);
// $image=DrawPercentHistogram($image,
// $tmpData,
// $tmpColor,
// array(30,20),
// array(160,280),1,0
// );
// unset($tmpData);
// $data_index=0;
// $tmpData[$data_index][0]=$cstaData[0][1][Success]+0;
// $tmpData[$data_index][1]=$cstaData[0][2][Success]+0;
// $data_index++;
// $tmpData[$data_index][0]=$cstaData[0][1][Cau1]+0;
// $tmpData[$data_index][1]=$cstaData[0][2][Cau1]+0;
// $data_index++;
// $tmpData[$data_index][0]=$cstaData[0][1][Cau2]+0;
// $tmpData[$data_index][1]=$cstaData[0][2][Cau2]+0;
// $data_index++;
// $tmpData[$data_index][0]=$cstaData[0][1][Cau3]+0;
// $tmpData[$data_index][1]=$cstaData[0][2][Cau3]+0;
// $data_index++;
// $tmpData[$data_index][0]=$cstaData[0][1][Cau4]+0;
// $tmpData[$data_index][1]=$cstaData[0][2][Cau4]+0;
// $data_index++;
// $tmpData[$data_index][0]=$cstaData[0][1][Cau5]+0;
// $tmpData[$data_index][1]=$cstaData[0][2][Cau5]+0;
// $data_index++;
// $image=DrawStackPercentHistogram($image,
// $tmpData,
// $tmpColor,
// array(220,20),
// array(420,280),0,1
// );
// $remarkBlock=array(
// "Attempt",
// "Success",
// "No","Resource",
// "Negotiation","Fail",
// "Media","Error",
// "No","Response",
// "General","Error"
// );
// $pointArr=array(
// array(90,320),
// array(245,310),
// array(330,305),array(315,315),
// array(365,305),array(387,315),
// array(448,305),array(447,315),
// array(520,305),array(507,315),
// array(572,305),array(577,315)
// );
// $image=AddRemarkToImage($image,$pointArr,$remarkBlock,0,0,2);
// unset($remarkBlock);
// unset($pointArr);
// $remarkBlock=array(
// "Conference",
// "Transcoding"
// );
// $pointArr=array(
// array(50,340),
// array(340,340),
// );
// $image=AddRemarkToImage($image,$pointArr,$remarkBlock,$tmpColor,0,2);
// DrawImage($image);
// }
?>
<script src="echarts.js"></script>
<script>
//uplink_total_volume与downlink_total_volume B --KB 10次方 --MB 20 -GB 30 --TB 40
document.addEventListener("DOMContentLoaded", function() {
var chart = echarts.init(document.getElementById('chart'));
// up down 上线行
var option = {
grid: {
left: '13%',
right: '13%',
bottom: '13%',
containLabel: true
},
title: {
text: 'Linke Total(B)'
},
tooltip: {
trigger: 'axis',
},
legend: {
data: ['Uplink Total Volume','Downlink Total Volume']
},
xAxis: {
type: 'category',
boundaryGap: false,
data: <?php echo $upDateArrJson;?>,
},
yAxis: {
type: 'value'
},
//由PHP提供数组
series: [{
name: 'Uplink Total Volume',
type: 'line',
smooth: true, //
data: <?php echo $upDataArrJson;?>
},
{
name:'Downlink Total Volume',
type: 'line',
smooth: true, //
data: <?php echo $downDataArrJson;?>
}
]
};
chart.setOption(option);
// 监听窗口大小变化
window.addEventListener('resize', function() {
chart.resize();
});
})
</script>
<div class="container">
<div id="chart" style="width: 100%; height: 100%;"></div>
</div>
<style>
.container {
display: flex; /* 使用 Flexbox 布局 */
height: 100%;
width: 100%;
}
#chart {
flex: 1; /* 使图表容器占据剩余空间 */
min-height: 0; /* 防止 Flexbox 子元素溢出 */
}
</style>