<%@page import="org.wdk.module.auth.mount.bean.BaseSessionUser"%>
<%@page import="org.wdk.WDK"%>
<%@page import="org.wdk.module.auth.source.bean.TokenBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
	BaseSessionUser su = WDK.getSessionUser(request, response);
	if(null==su){
		su = new BaseSessionUser();
	}
	String WDK_ROOT = WDKCore.WDK_ROOT;
	String RSS_ROOT = WDK_ROOT +"/"+WDKConstant.Theme+"/"+WDKCore.THEME;
	String commonURL = "/"+RSS_ROOT+"/module/public/common.jsp";
%>
<!DOCTYPE html>
<%@page import="org.wdk.WDKConstant"%>
<%@page import="org.wdk.WDKCore"%>
<html>

<head>
<base href="<%=basePath%>" target="_self">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<jsp:include page='<%=commonURL %>'></jsp:include>
<script type="text/javascript" src="<%=RSS_ROOT%>/core/js/wdk.js"></script>
<title>访问量实时监控</title>
<style type="text/css">
html
{
height: 100%;
overflow: hidden;
}
body
{
background: #000;
color: #C0C0C0;
font-weight: bold;
font-size: 14px;
font-family: Lucida Console;
height: 100%;
margin: 0 0 0 5px;
}
#divContent
{
position:fixed;
left:0px;
top:0px;
right:0px;
bottom:0px;
overflow:auto;
white-space: nowrap; 
}
#cont
{
height: 100%;
width: 100%;

}
#txtTimeout
{
width: 40px;
}
button
{
margin-left: 10px;
}
</style>
	<script type="text/javascript" src="<%=WDK_ROOT%>/core/js/lib/highcharts.3.0.7/highcharts.src.js"></script>
	<script type="text/javascript" src="<%=WDK_ROOT%>/core/js/lib/highcharts.3.0.7/highcharts-more.src.js"></script>
	<script type="text/javascript" src="<%=WDK_ROOT%>/core/js/lib/highcharts.3.0.7/themes/grid.js"></script>
	<script type="text/javascript">
	<% if(null==su){%>		
	$.timeout();
	//alert("登录超时,请重新登录!");
	//$.getRoot().document.location.href = $.base()+"/console.jsp";
	<%}%>



	
	var chart_panel;
	var _gridcode = 'wdk.module.monitor.visitgrid';
	var _gridid = null;
	var _grid_ok = false;
	window.onload = function(){
		Highcharts.setOptions({
		         global: {
		             useUTC: false
		         }
		     });
	     
		_gridid = $.grid({
			containerid:'layout_grid',
			gridcode:_gridcode,
			//url:'wdk?action=wdk.public&method=monitor_visit_load&ajaxparam='+new Date().getTime(),
	        fit: true,//自动大小
	        showContextMenu:false,
	        onLoadSuccess:function(){_grid_ok = true;}
		});
		initPanel();
		monitor_load();
	};
	

	//加载授权信息
	function monitor_load(){
		$.cuajax({
			  	url:'wdk?action=wdk.public&method=monitor_visit_load&ajaxparam='+new Date().getTime(),
				method:"post", 
				timeout:WDK_Timeout,
				data:{},   
				success:function(result) {
					var jres = $.str2json(result);
					if("1"==jres.code){
						grid_redraw(jres);
						panel_redraw(jres);
					}
					setTimeout('monitor_load()',2000);
				},
				error:function(result){
					alert('网络错误!result='+result);
				}
			});
	}
	function grid_redraw(jres){
		if(_gridid){
			$('#'+_gridid).datagrid('loadData',jres.grid);
		}else{
			alert('err');
		}
	}
	function panel_redraw(jres){
		
		if(chart_panel){
			var x = (new Date()).getTime();
			var y0 = parseInt(jres.totalsize);
			var y1 = parseInt(jres.wrongrequest);
			var y2 = parseInt(jres.avervisit);
			chart_panel.series[0].addPoint([x,y0],true,true);
			chart_panel.series[1].addPoint([x,y1],true,true);
			chart_panel.series[2].addPoint([x,y2],true,true);
			chart_panel.redraw();
		}
	}
	
	function initPanel(){
		$('#layout_panel').highcharts({
			chart: {
	            type: 'spline',
	            animation: Highcharts.svg, // don't animate in old IE
	            marginRight: 80,
	            events: {
	                load: function() {
						chart_panel = this;
	                }
	            }
	        },
	        title: {
	            text: '对外服务监控'
	        },
	        xAxis: {
	            type: 'datetime',
	            tickPixelInterval: 100
	        },
	     /*  yAxis: {
	        	min: 0,						//从0开始
	        	allowDecimals:false,		//只显示整数
	            title: {
	                text: '并发量'
	            },
	            plotLines: [{
	                value: 0,
	                width: 1,
	                color: '#808080'
	            }]
	        },
*/
	        yAxis: [
                    {
                    	min: 0,						//从0开始
        	        	allowDecimals:false,		//是否允许显示小数
                        title: {
                            text: '每秒请求数',
                            style: {
                                color: '#3E576F'
                            }
                        }
                    },
                    {
                    	min: 0,						//从0开始
        	        	allowDecimals:true,			//是否允许显示小数
                        title: {
                            text: '平均响应时间(单位:秒)',
                            style: {
                                color: '#00AA00'
                            }
                        },
                        opposite:true
                    }
                ],
	                
	        tooltip: {
	            formatter: function() {
	            		//return '<b>'+this.series.name+'当前并发数:'+this.y+'</b>';
	                  /*  return '<b>'+ this.series.name +'</b><br/>'+
	                    Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
	                    Highcharts.numberFormat(this.y, 2);*/
	            	 return '<b>' + this.series.name + '</b><br/>' +
	            	 Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) + '<br/>' +
	            	 Highcharts.numberFormat(this.y, 2);
	            }
	        },
	        legend: {
	            enabled: true
	        },
	        exporting: {
	            enabled: false
	        },
	        series: [{
			            name: '总请求数',
			            data: (function() {
			                // generate an array of random data
			                var data = [],
			                    time = (new Date()).getTime(),
			                    i;
			
			                for (i = -10; i <= 0; i++) {
			                    data.push({
			                        x: time + i * 5000,
			                        y: 0
			                    });
			                }
			                return data;
			            })()
			        },{
			            name: '错误请求数',
			            data: (function() {
			                // generate an array of random data
			                var data = [],
			                    time = (new Date()).getTime(),
			                    i;
			
			                for (i = -10; i <= 0; i++) {
			                    data.push({
			                        x: time + i * 5000,
			                        y: 0
			                    });
			                }
			                return data;
			            })()
			        },{
			            name: '平均响应时间',
			            yAxis:1,
			            data: (function() {
			                // generate an array of random data
			                var data = [],
			                    time = (new Date()).getTime(),
			                    i;
			
			                for (i = -10; i <= 0; i++) {
			                    data.push({
			                        x: time + i * 5000,
			                        y: 0
			                    });
			                }
			                return data;
			            })()
			        }]
        });
	}
 </script>

</head>
<!--<body style="padding:0px;margin:0px;overflow: auto;" >-->
<!--	<div id="panel4" style="position:fixed;left:50%;top:50%;right:0px;bottom:0px;width:50%;height:50%;background-color:#22332a">444</div>-->
<!--</body>-->

<body  class="easyui-layout" data-options="fit:true" style="padding:0px;margin:0px;background-color:#FFFFFF;">
	<div id="layout_panel" data-options="region:'center',border:false,collapsed:false" style="overflow:hidden;border:1px solid #ddd;" >
	
	</div>
	<div id="layout_grid" data-options="region:'south',border:false,collapsed:false" style="width:100%;height:200px;overflow:hidden;border:1px solid #ddd;text-align:left;" >
    </div>
    
</body>

</html>