3 statusUtil.statisticsPollTime=60000;
\r
4 statusUtil.connectionsPollTime=5000;
\r
5 statusUtil.connectionsXAxisCount=12;
\r
6 statusUtil.statisticsXAxisCount=60;
\r
7 statusUtil.connection=true;
\r
9 statusUtil.initChart= function(){
\r
10 statusUtil.init_statistics_requestChart();
\r
11 statusUtil.init_status_requestChart();
\r
12 statusUtil.init_connectionChart();
\r
16 statusUtil.getQueryString= function(name) {
\r
17 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
\r
18 var r = window.location.search.substr(1).match(reg);
\r
20 return unescape(r[2]);
\r
24 statusUtil.init_statistics_requestChart= function(){
\r
34 "url": apiBasePath+"/statistics/request?latestNum=10",
\r
36 success: function (resp) {
\r
38 var initDatas = (resp==null)?[]:resp;
\r
39 for(var i=0;i<initDatas.length;i++){
\r
40 var dataArray=initDatas[i].split("|");
\r
41 times.push(statusUtil.getLocalTime(dataArray[0]));
\r
42 datas.push(dataArray[1]);
\r
45 if(initDatas.length>0){
\r
46 latestTime=initDatas[initDatas.length-1];
\r
51 error: function(XMLHttpRequest, textStatus, errorThrown) {
\r
52 statusUtil.connection=false;
\r
53 alert("get Chart Data fails:"+textStatus+":"+errorThrown);
\r
58 var requestChart = echarts.init(document.getElementById('statisticsLineChartDiv'), 'macarons');
\r
90 boundaryGap: [0.1, 0.1]
\r
102 // 使用刚指定的配置项和数据显示图表。
\r
103 requestChart.setOption(option);
\r
104 window.onresize = requestChart.resize;
\r
105 if(statusUtil.connection==true){
\r
106 setInterval(function () {
\r
112 "url": apiBasePath+"/statistics/request",
\r
113 "dataType": "json",
\r
114 success: function (resp) {
\r
116 var latestData = (resp==null)?[]:resp;
\r
118 if(latestData.length>0){
\r
119 var dataArray=latestData[0].split("|");
\r
121 var data = option.series[0].data;
\r
123 if(latestTime!=dataArray[0]){
\r
124 data.push(dataArray[1]);
\r
125 option.xAxis.data.push(statusUtil.getLocalTime(dataArray[0]));
\r
126 if(data.length>=statusUtil.statisticsXAxisCount){
\r
128 option.xAxis.data.shift();
\r
132 var maxVaule=Math.max.apply(null, data);
\r
134 option.yAxis.max=5;
\r
137 option.yAxis.max=null;
\r
139 requestChart.setOption(option);
\r
141 latestTime=dataArray[0];
\r
149 }, statusUtil.statisticsPollTime);
\r
153 var statusLineChart;
\r
154 var statusLineChartOption;
\r
155 statusUtil.init_status_requestChart= function(){
\r
157 statusLineChart = echarts.init(document.getElementById('statusLineChartDiv'), 'macarons');
\r
159 statusLineChartOption = {
\r
174 data:['已转发等待响应','已接收待转发','收到响应待返回']
\r
179 boundaryGap: false,
\r
190 boundaryGap: [0.1, 0.1]
\r
212 // 使用刚指定的配置项和数据显示图表。
\r
213 statusLineChart.setOption(statusLineChartOption);
\r
214 window.onresize = statusLineChart.resize;
\r
215 if(statusUtil.connection==true){
\r
217 statusUtil.getStatusLineChart4Data();
\r
219 setInterval(function () {
\r
220 statusUtil.getStatusLineChart4Data();
\r
221 }, statusUtil.connectionsPollTime);
\r
225 statusUtil.getStatusLineChart4Data=function(){
\r
231 "url": apiBasePath+"/status/request",
\r
232 "dataType": "json",
\r
233 success: function (resp) {
\r
236 var forward_data= statusLineChartOption.series[0].data;
\r
237 var accept_data = statusLineChartOption.series[1].data;
\r
238 var receive_data = statusLineChartOption.series[2].data;
\r
242 if(accept_data.length>=statusUtil.statisticsXAxisCount){
\r
243 accept_data.shift();
\r
244 forward_data.shift();
\r
245 receive_data.shift();
\r
246 statusLineChartOption.xAxis.data.shift();
\r
250 accept_data.push(resp.accept_preparing_forward);
\r
251 forward_data.push(resp.forward_waiting_response);
\r
252 receive_data.push(resp.receive_resp_not_return);
\r
254 var allValue=accept_data.concat(forward_data).concat(receive_data);
\r
255 var maxVaule=Math.max.apply(null, allValue);
\r
257 statusLineChartOption.yAxis.max=5;
\r
260 statusLineChartOption.yAxis.max=null;
\r
264 statusLineChartOption.xAxis.data.push(statusUtil.getCurrentTime());
\r
266 statusLineChart.setOption(statusLineChartOption);
\r
272 var connectionChart;
\r
273 var connectionChartOption;
\r
275 statusUtil.init_connectionChart= function(){
\r
279 connectionChart = echarts.init(document.getElementById('connectionBarChartDiv'), 'macarons');
\r
282 connectionChartOption = {
\r
298 data:['Active','Waiting','Writing','Reading']
\r
318 boundaryGap: [0.1, 0.1]
\r
330 stack: 'connection',
\r
336 stack: 'connection',
\r
342 stack: 'connection',
\r
348 // 使用刚指定的配置项和数据显示图表。
\r
349 connectionChart.setOption(connectionChartOption);
\r
350 window.onresize = connectionChart.resize;
\r
352 if(statusUtil.connection==true){
\r
353 statusUtil.getConnectionChart4Data();
\r
355 setInterval(function () {
\r
356 statusUtil.getConnectionChart4Data();
\r
357 }, statusUtil.connectionsPollTime);
\r
361 statusUtil.getConnectionChart4Data=function(){
\r
365 "url": apiBasePath+"/status/connection",
\r
366 "dataType": "json",
\r
367 success: function (resp) {
\r
370 var active_data = connectionChartOption.series[0].data;
\r
371 var waiting_data = connectionChartOption.series[1].data;
\r
372 var writing_data = connectionChartOption.series[2].data;
\r
373 var reading_data = connectionChartOption.series[3].data;
\r
376 if(active_data.length>=statusUtil.connectionsXAxisCount){
\r
377 active_data.shift();
\r
378 waiting_data.shift();
\r
379 writing_data.shift();
\r
380 reading_data.shift();
\r
381 connectionChartOption.xAxis.data.shift();
\r
384 active_data.push(resp.connections_active);
\r
385 waiting_data.push(resp.connections_waiting);
\r
386 writing_data.push(resp.connections_writing);
\r
387 reading_data.push(resp.connections_reading);
\r
389 var allValue=active_data.concat(waiting_data).concat(writing_data).concat(reading_data)
\r
390 var maxVaule=Math.max.apply(null, allValue)
\r
392 connectionChartOption.yAxis.max=5;
\r
395 connectionChartOption.yAxis.max=null;
\r
399 connectionChartOption.xAxis.data.push(statusUtil.getCurrentTime());
\r
401 connectionChart.setOption(connectionChartOption);
\r
410 statusUtil.getCurrentTime=function(){
\r
411 var date = new Date();
\r
412 var axisData = [statusUtil.addZero(date.getHours()),statusUtil.addZero(date.getMinutes()),statusUtil.addZero(date.getSeconds())].join(":");
\r
416 statusUtil.addZero=function(s) {
\r
417 return s < 10 ? '0' + s: s;
\r
421 statusUtil.getLocalTime=function(nS) {
\r
422 var date = new Date(parseInt(nS)*1000);
\r
423 var fullDate= [statusUtil.addZero(date.getFullYear()),statusUtil.addZero(date.getMonth() + 1 ) ,statusUtil.addZero(date.getDate())].join("-");
\r
425 fullDate += [statusUtil.addZero(date.getHours()),statusUtil.addZero(date.getMinutes()),statusUtil.addZero(date.getSeconds())].join(":");
\r