ECharts使用

@Controller
@RequestMapping("/****")
public class MonitorController {
    private final static Logger LOGGER = Eslf4jLoggerFactory.getLogger(MonitorController.class);
    @Resource
    private JdCacheCloud jdCacheCloud;
    @RequestMapping(value = "/bar",method = RequestMethod.GET)
    public ModelAndView MonitorBar (){
        ModelAndView modelAndView = new ModelAndView("/monitor/yujh");
        return modelAndView;
    }
    @RequestMapping(value = "/query",method = RequestMethod.GET)
    @ResponseBody
    public Map<String,Object> query (String key){
        Map<String, Object> map ;
        String[] keys = new String[10];
        List<Map<String,Object>> list = new ArrayList<Map<String, Object>>();
        for(int i =0;i<5;i++){
            map = new HashMap<String, Object>();
            //算出当前的小时的前1-5个小时内的整数小时点数
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.HOUR_OF_DAY,calendar.get(Calendar.HOUR_OF_DAY)-i);
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
            //拼接keySTATISTIC-IP-2017-06-29-14-h5-PaiDaoJia
            keys[i] = "STATISTIC-IP-"+simpleDateFormat.format(calendar.getTime())+"-h5-PaiDaoJia";
            //得到IP
            Set<String> set = jdCacheCloud.getCluster().zRevRange(keys[i], 0, 50);
            if(set == null || set.size() < 0){
                continue;
            }
            Object[] setArray = set.toArray();
            String[] ips = new String[set.size()];
            String[] countArray = new String[ips.length];
            for (int j = 0; j < set.size(); j++) {
                ips[j] = (String) setArray[j];
                //根据ip和key查询此机器的调用次数
                long count = jdCacheCloud.getCluster().zScore(keys[i], ips[j]).longValue();
                LOGGER.info("STATISTIC-IP keys[" + keys[i] + "],ip[" + ips[j] + "],访问次数:" + count);
                countArray[j] = String.valueOf(count);
            }
            map.put("ipArray", ips);
            map.put("countArray", countArray);
            map.put("currentime",keys[i]);
            list.add(map);
        }
        Map<String,Object> m = new HashMap<String, Object>();
        m.put("list",list);
        LOGGER.info("MonitorController.query()" + JsonUtils.toJson(m));
        return m;
    }



    @RequestMapping(value = "/query1",method = RequestMethod.GET)
    @ResponseBody
    public Map<String,Object> query1 (String key){
        Map<String, Object> map ;
        String[] keys = new String[10];
        List<Map<String,Object>> list = new ArrayList<Map<String, Object>>();
        for(int i =5;i<10;i++){
            map = new HashMap<String, Object>();
            //算出当前的小时的前5-10个小时内的整数小时点数
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - i);
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
            //拼接keySTATISTIC-IP-2017-06-29-14-h5-PaiDaoJia
            keys[i] = "STATISTIC-IP-"+simpleDateFormat.format(calendar.getTime())+"-h5-PaiDaoJia";
            //得到IP
            Set<String> set = jdCacheCloud.getCluster().zRevRange(keys[i], 0, 50);
            if(set == null || set.size() < 0){
                continue;
            }
            Object[] setArray = set.toArray();
            String[] ips = new String[set.size()];
            String[] countArray = new String[ips.length];
            for (int j = 0; j < set.size(); j++) {
                ips[j] = (String) setArray[j];
                //根据ip和key查询此机器的调用次数
                long count = jdCacheCloud.getCluster().zScore(keys[i], ips[j]).longValue();
                LOGGER.info("STATISTIC-IP keys[" + keys[i] + "],ip[" + ips[j] + "],访问次数:" + count);
                countArray[j] = String.valueOf(count);
            }
            map.put("ipArray", ips);
            map.put("countArray", countArray);
            map.put("currentime",keys[i]);
            list.add(map);
        }
        Map<String,Object> m = new HashMap<String, Object>();
        m.put("list",list);
        return m;
}
/
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>ECharts</title>
</head>

<body>
<!-- 为ECharts准备一个具备大小(宽高)的Dom -->
<div id="main0" style="height:600px"></div>
<div id="main1" style="height:600px"></div>
<div id="main2" style="height:600px"></div>
<div id="main3" style="height:600px"></div>
<div id="main4" style="height:600px"></div>

<div id="main10" style="height:600px"></div>
<div id="main11" style="height:600px"></div>
<div id="main12" style="height:600px"></div>
<div id="main13" style="height:600px"></div>
<div id="main14" style="height:600px"></div>
##<input type="text" id="key" />
##<input type="button" id="button" value="button" οnclick="queryList()"/>
<!-- ECharts单文件引入 -->
<script src="/static/scripts/dist/echarts.js"></script>
<script type="text/javascript">


        $(document).ready(
                function(){
                    queryList();
                    queryList1();
                }
        );

        function queryList(){
            var key = $("#key").val();
            $.ajax({
                type: 'GET',
                dataType:'json',
                url: '#springUrl('')/monitor/query?key='+key,
                success: function (result) {
                    // 路径配置
                    require.config({
                        paths: {
                            echarts: '/static/scripts/dist'
                        }
                    });
                    // 使用
                    require(
                            [
                                'echarts',
                                'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
                            ],
                            function (ec) {
                                $.each(result.list,function(i,item){
                                // 基于准备好的dom,初始化echarts图表
                                var myChart = ec.init(document.getElementById('main'+i));
                                var option = {
                                    tooltip: {
                                        show: true
                                    },
                                    legend: {
                                        data:['0000-00-00-00']
                                    },
                                    xAxis : [
                                        {
                                            type : 'category',
                                            data : ["1","1","1","1","1","1"],
                                            axisLabel:{
                                                rotate:45,
                                                interval:0
                                            }
//                                            name:"06-28-17",
//                                            nameLocation:"end"
                                        }
                                    ],
                                    grid: { // 控制图的大小,调整下面这些值就可以,
                                        x: 40,
                                        x2: 100,
                                        y2: 150,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上
                                    },
                                    yAxis : [
                                        {
                                            type : 'value'
                                        }
                                    ],
                                    series : [
                                        {
                                            "name":"",
                                            "type":"bar",
                                            "data":[10, 10, 10, 10,90, 50]
                                        }
                                    ]
                                };

                                option.series[0].data=item.countArray;
                                option.xAxis[0].data=item.ipArray;
                                option.series[0].name=item.currentime;
                                option.legend.data[0] = item.currentime;
                                // 为echarts对象加载数据
                                myChart.setOption(option);
                                });
                            }
                    );

                }});


        }



    function queryList1(){

        var key = $("#key").val();
        $.ajax({
            type: 'GET',
            dataType:'json',
            url: '#springUrl('')/monitor/query1?key='+key,
            success: function (result) {
                // 路径配置
                require.config({
                    paths: {
                        echarts: '/static/scripts/dist'
                    }
                });
                // 使用
                require(
                        [
                            'echarts',
                            'echarts/chart/bar' // 使用柱状图就加载bar模块,按需加载
                        ],
                        function (ec) {
                            $.each(result.list,function(i,item){
                                // 基于准备好的dom,初始化echarts图表
                                var myChart = ec.init(document.getElementById('main1'+i));
                                var option = {
                                    tooltip: {
                                        show: true
                                    },
                                    legend: {
                                        data:['0000-00-00-00']
                                    },
                                    xAxis : [
                                        {
                                            type : 'category',
                                            data : ["1","1","1","1","1","1"],
                                            axisLabel:{
                                                rotate:45,
                                                interval:0
                                            }
//                                            name:"06-28-17",
//                                            nameLocation:"end"
                                        }
                                    ],
                                    grid: { // 控制图的大小,调整下面这些值就可以,
                                        x: 40,
                                        x2: 100,
                                        y2: 150,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上
                                    },
                                    yAxis : [
                                        {
                                            type : 'value'
                                        }
                                    ],
                                    series : [
                                        {
                                            "name":"",
                                            "type":"bar",
                                            "data":[10, 10, 10, 10,90, 50]
                                        }
                                    ]
                                };

                                option.series[0].data=item.countArray;
                                option.xAxis[0].data=item.ipArray;
                                option.series[0].name=item.currentime;
                                option.legend.data[0] = item.currentime;
                                // 为echarts对象加载数据
                                myChart.setOption(option);
                            });
                        }
                );

            }});


    }




</script>
</body>











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值