Echarts CPU监控 (折线仪表盘,图例混搭)





CPU page



<script type="text/javascript" >  
    var myChart;  
    var eCharts;  
    var cpu_r = 100;  
    var cpu_y= '85%';  
    var cpu_title = '-25%';  
    var cpu_detail =21;  

    require([ 'echarts', 'echarts/chart/line' //按需加载图表关于线性图、折线图的部分  
    ], DrawEChart //异步加载的回调函数绘制图表  
    );  

    //创建ECharts图表方法  
    function DrawEChart(ec) {  
        eCharts = ec;  
        myChart = eCharts.init(document.getElementById('main'));  
        myChart.showLoading({  
            text : "图表数据正在努力加载...",  
            effect :'whirling',//'spin' | 'bar' | 'ring' | 'whirling' | 'dynamicLine' | 'bubble'  
            textStyle : {  
                fontSize : 20  
            }  
        });  


        //定义图表options  
        var options = {  
            backgroundColor: 'white',  
            title : {  
                text : "最近10次CPU采样结果",  
                itemGap :270,  
                subtext : "当前CPU采样",  
                subtextStyle :{  
                    fontSize: 15, fontWeight: 'bolder', color: '#333'  
                },  
                sublink : "http://www.baidu.com"  
            },  

            tooltip : {  
                trigger : 'axis'  
            },  
            legend : {  
                data : [ "空闲率","系统使用率","用户使用率","I/O等待率","告警阀值" ]  
            },  
            toolbox : {  
                show : true,  
                feature : {  
                    //mark : {show : true},  
                    //dataView : {show : true,readOnly : false},  
                    magicType : {  
                        show : true,type : [ 'line', 'bar' ]  
                    },  
                    //restore : {show : true},  
                    saveAsImage : {  
                        show : true  
                    }  
                }  
            },  

            calculable : true,  
            xAxis : [ {  
                type : 'category',  
                boundaryGap : false,  
                data : [ '第1次采样', '第2次采样', '第3次采样', '第4次采样', '第5次采样', '第6次采样', '第7次采样', '第8次采样', '第9次采样', '第10次采样' ]  
            } ],  

            yAxis : [ {  
                type : 'value',  
                axisLabel : {  
                    formatter : '{value} %'  
                },  
                splitArea : {  
                    show : true  
                }  
            } ],  

            grid : {  
                    width : '90%' , //直角坐标轴占整页的百分比  
                    height : '43%'  
                    },  

            series : [  
                    {  
                        name : '空闲率',  
                        type : 'gauge',  
                        center : [ '15%', cpu_y ],//圆心坐标,支持绝对值(px)和百分比  
                        radius : cpu_r,  //仪表盘的半径  
                        splitNumber : 10, // 分割段数,默认为5  
                        axisLine : { // 坐标轴线  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : [ [ 0.2, '#ff4500' ],  
                                        [ 0.8, '#48b' ], [ 1, '#228b22' ] ],  
                                width : 8  
                            }  
                        },  
                        axisTick : { // 坐标轴小标记  
                            splitNumber : 10, // 每份split细分多少段  
                            length : 12, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        axisLabel : { // 坐标轴文本标签,详见axis.axisLabel  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto'  
                            }  
                        },  
                        splitLine : { // 分隔线  
                            show : true, // 默认显示,属性show控制显示与否  
                            length : 30, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle(详见lineStyle)控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        pointer : {  
                            width : 5  
                        },  
                        title : {  
                            show : true,  
                            offsetCenter : [ 0, cpu_title ], // x, y,单位px  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                fontWeight : 'bolder',  
                                fontSize : 10  
                            }  
                        },  
                        detail : {  
                            formatter : '{value}%',  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto',  
                                fontWeight : 'bolder',  
                                fontSize : cpu_detail  
                            }  
                        },  
                        data : [ {  
                            value : 10,  
                            name : '空闲率'  
                        } ]  
                    },  
                    {  
                        name : '系统使用率',  
                        type : 'gauge',  
                        center : [ '39%', cpu_y ],//圆心坐标,支持绝对值(px)和百分比  
                        radius : cpu_r,  //仪表盘的半径  
                        splitNumber : 10, // 分割段数,默认为5  
                        axisLine : { // 坐标轴线  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : [ [ 0.2, '#228b22' ],  
                                        [ 0.8, '#48b' ], [ 1, '#ff4500' ] ],  
                                width : 8  
                            }  
                        },  
                        axisTick : { // 坐标轴小标记  
                            splitNumber : 10, // 每份split细分多少段  
                            length : 12, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        axisLabel : { // 坐标轴文本标签,详见axis.axisLabel  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto'  
                            }  
                        },  
                        splitLine : { // 分隔线  
                            show : true, // 默认显示,属性show控制显示与否  
                            length : 30, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle(详见lineStyle)控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        pointer : {  
                            width : 5  
                        },  
                        title : {  
                            show : true,  
                            offsetCenter : [ 0, cpu_title ], // x, y,单位px  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                fontWeight : 'bolder',  
                                fontSize : 10  
                            }  
                        },  
                        detail : {  
                            formatter : '{value}%',  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto',  
                                fontWeight : 'bolder',  
                                fontSize : cpu_detail  
                            }  
                        },  
                        data : [ {  
                            value : 20,  
                            name : '系统使用率'  
                        } ]  
                    },  
                    {  
                        name : '用户使用率',  
                        type : 'gauge',  
                        center : [ '62%', cpu_y ],//圆心坐标,支持绝对值(px)和百分比  
                        radius : cpu_r,  //仪表盘的半径  
                        splitNumber : 10, // 分割段数,默认为5  
                        axisLine : { // 坐标轴线  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : [ [ 0.2, '#228b22' ],  
                                        [ 0.8, '#48b' ], [ 1, '#ff4500' ] ],  
                                width : 8  
                            }  
                        },  
                        axisTick : { // 坐标轴小标记  
                            splitNumber : 10, // 每份split细分多少段  
                            length : 12, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        axisLabel : { // 坐标轴文本标签,详见axis.axisLabel  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto'  
                            }  
                        },  
                        splitLine : { // 分隔线  
                            show : true, // 默认显示,属性show控制显示与否  
                            length : 30, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle(详见lineStyle)控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        pointer : {  
                            width : 5  
                        },  
                        title : {  
                            show : true,  
                            offsetCenter : [ 0, cpu_title ], // x, y,单位px  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                fontWeight : 'bolder',  
                                fontSize : 10  
                            }  
                        },  
                        detail : {  
                            formatter : '{value}%',  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto',  
                                fontWeight : 'bolder',  
                                fontSize : cpu_detail  
                            }  
                        },  
                        data : [ {  
                            value : 40,  
                            name : '用户使用率'  
                        } ]  
                    },  
                    {  
                        name : 'IO等待率',  
                        type : 'gauge',  
                        center : [ '85%', cpu_y ],//圆心坐标,支持绝对值(px)和百分比  
                        radius : cpu_r,  //仪表盘的半径  
                        splitNumber : 10, // 分割段数,默认为5  
                        axisLine : { // 坐标轴线  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : [ [ 0.2, '#228b22' ],  
                                        [ 0.8, '#48b' ], [ 1, '#ff4500' ] ],  
                                width : 8  
                            }  
                        },  
                        axisTick : { // 坐标轴小标记  
                            splitNumber : 10, // 每份split细分多少段  
                            length : 12, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        axisLabel : { // 坐标轴文本标签,详见axis.axisLabel  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto',  
                                //fontSize : 12  
                            }  
                        },  
                        splitLine : { // 分隔线  
                            show : true, // 默认显示,属性show控制显示与否  
                            length : 30, // 属性length控制线长  
                            lineStyle : { // 属性lineStyle(详见lineStyle)控制线条样式  
                                color : 'auto'  
                            }  
                        },  
                        pointer : {  
                            width : 5  
                        },  
                        title : {  
                            show : true,  
                            offsetCenter : [ 0, cpu_title ], // x, y,单位px  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                fontWeight : 'bolder',  
                                fontSize : 10  
                            }  
                        },  
                        detail : {  
                            formatter : '{value}%',  
                            textStyle : { // 其余属性默认使用全局文本样式,详见TEXTSTYLE  
                                color : 'auto',  
                                fontWeight : 'bolder',  
                                fontSize : cpu_detail  
                            }  
                        },  
                        data : [ {  
                            value : 70,  
                            name : 'I/O等待率'  
                        } ]  
                    },  


//============================================================================================================            

                    {  
                        name : '空闲率',  
                        type : 'line',  
                        data : [ 21, 22, 23, 27, 25, 28, 31 ,25, 25, 25],//必须是Integer类型的,String计算平均值会出错  
                        markPoint : {  
                            data : [ {  
                                type : 'max',  
                                name : '最大值'  
                            }, {  
                                type : 'min',  
                                name : '最小值'  
                            } ]  
                        },  
                        //markLine : {  
                            //data : [ {  
                            //  type : 'average',  
                            //  name : '平均值'  
                            //} ]  
                        //}  
                    } ,  
                    {  
                        name : '系统使用率',  
                        type : 'line',  
                        data : [ 13, 12, 13, 11, 14, 18, 21 , 14, 14, 14  ],//必须是Integer类型的,String计算平均值会出错  
                        markPoint : {  
                            data : [ {  
                                type : 'max',  
                                name : '最大值'  
                            }, {  
                                type : 'min',  
                                name : '最小值'  
                            } ]  
                        }  
                    } ,       
                    {  
                        name : '用户使用率',  
                        type : 'line',  
                        data : [ 32, 33, 32, 31, 32, 38, 21 , 32, 32, 32 ],//必须是Integer类型的,String计算平均值会出错  
                        markPoint : {  
                            data : [ {  
                                type : 'max',  
                                name : '最大值'  
                            }, {  
                                type : 'min',  
                                name : '最小值'  
                            } ]  
                        }  
                    } ,  
                    {  
                        name : 'I/O等待率',  
                        type : 'line',  
                        data : [ 22, 21, 23, 24, 25, 22, 11, 22, 22, 22 ],//必须是Integer类型的,String计算平均值会出错  
                        markPoint : {  
                            data : [ {  
                                type : 'max',  
                                name : '最大值'  
                            }, {  
                                type : 'min',  
                                name : '最小值'  
                            } ]  
                        }  
                    } ,  
                    {  
                        name : '告警阀值',  
                        type : 'line',  
                        itemStyle: {  
                            normal: {  
                                color: 'red',  
                                lineStyle: {width: 5}  
                            }  
                    },  
                        data : [ 70, 70, 70, 70,70, 70, 70, 70,70, 70 ]//必须是Integer类型的,String计算平均值会出错  

                    }   
            ]  
        };  


        //clearTimeout(loadingTicket);  
        //loadingTicket = setTimeout(function (){  
            myChart.setOption(options);  
            myChart.hideLoading();  
        //},100);  



        //myChart.setOption(options); //先把可选项注入myChart中  
        //myChart.hideLoading();  
        //getChartData();  
    }  
</script>  


<script type="text/javascript">  
    function getChartData() {  
        //获得图表的options对象  
        var options = myChart.getOption();  
        //通过Ajax获取数据  
        $.ajax({  
            type : "post",  
            async : false, //同步执行  
            url : "${pageContext.request.contextPath}/echarts/line_data",  
            data : {},  
            dataType : "json", //返回数据形式为json  
            success : function(result) {  
                if (result) {  
                    options.legend.data = result.legend;  
                    options.xAxis[0].data = result.category;  
                    options.series[0].data = result.series[0].data;  

                    myChart.hideLoading();  
                    myChart.setOption(options);  
                }  
            },  
            error : function(errorMsg) {  
                alert("不好意思,大爷,图表请求数据失败啦!");  
                myChart.hideLoading();  
            }  
        });  
    }  
</script>  


这里写图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值