JFinal结合Sigar、echarts实现后台服务器监控
来源:互联网 发布:考研英语网络课程 编辑:程序博客网 时间:2024/05/20 17:24
服务端
public void cpu() throws SigarException { Sigar sigar = new Sigar(); CpuInfo infos[] = sigar.getCpuInfoList(); CpuPerc cpuList[] = sigar.getCpuPercList(); JSONObject jsonObject = new JSONObject(); JSONArray jsonArray = new JSONArray(); for (int i = 0, len = infos.length; i < len; i++) {// 不管是单块CPU还是多CPU都适用 CpuInfo info = infos[i]; JSONObject jso = new JSONObject(); jso.put("mhz", info.getMhz()); //CPU的总量MHz jso.put("company", info.getVendor()); //CPU的厂商 jso.put("model", info.getModel()); //CPU型号类别 jso.put("cache_size", info.getCacheSize()); // 缓冲缓存数量 CpuPerc cpu = cpuList[i]; jso.put("freq_user", CpuPerc.format(cpu.getUser())); //CPU的用户使用率 jso.put("freq_sys", CpuPerc.format(cpu.getSys())); //CPU的系统使用率 jso.put("freq_wait", CpuPerc.format(cpu.getWait())); //CPU的当前等待率 jso.put("freq_nice", CpuPerc.format(cpu.getNice())); //CPU的当前错误率 jso.put("freq_idle", CpuPerc.format(cpu.getIdle())); //CPU的当前空闲率 jso.put("freq_combined", CpuPerc.format(cpu.getCombined())); //CPU总的使用率 jsonArray.add(jso); } jsonObject.put("cpu", jsonArray); renderJson(jsonObject); } public void jvm() throws UnknownHostException { Runtime r = Runtime.getRuntime(); Properties props = System.getProperties(); JSONObject jsonObject = new JSONObject(); jsonObject.put("jvm_memory_total", r.totalMemory()); //JVM可以使用的总内存 jsonObject.put("jvm_memory_free", r.freeMemory()); //JVM可以使用的剩余内存 jsonObject.put("jvm_processor_avaliable", r.availableProcessors()); //JVM可以使用的处理器个数 jsonObject.put("jvm_java_version", props.getProperty("java.version")); //Java的运行环境版本 jsonObject.put("jvm_java_vendor", props.getProperty("java.vendor")); //Java的运行环境供应商 jsonObject.put("jvm_java_home", props.getProperty("java.home")); //Java的安装路径 jsonObject.put("jvm_java_specification_version", props.getProperty("java.specification.version")); //Java运行时环境规范版本 jsonObject.put("jvm_java_class_path", props.getProperty("java.class.path")); //Java的类路径 jsonObject.put("jvm_java_library_path", props.getProperty("java.library.path")); //Java加载库时搜索的路径列表 jsonObject.put("jvm_java_io_tmpdir", props.getProperty("java.io.tmpdir")); //默认的临时文件路径 jsonObject.put("jvm_java_ext_dirs", props.getProperty("java.ext.dirs")); //扩展目录的路径 renderJson(jsonObject); } public void memory() throws SigarException { Sigar sigar = new Sigar(); Mem mem = sigar.getMem(); JSONObject jsonObject = new JSONObject(); jsonObject.put("memory_total", mem.getTotal() / (1024 * 1024L));// 内存总量 jsonObject.put("memory_used", mem.getUsed() / (1024 * 1024L));// 当前内存使用量 jsonObject.put("memory_free", mem.getFree() / (1024 * 1024L));// 当前内存剩余量 Swap swap = sigar.getSwap(); jsonObject.put("memory_swap_total", swap.getTotal() / (1024 * 1024L));// 交换区总量 jsonObject.put("memory_swap_used", swap.getUsed() / (1024 * 1024L));// 当前交换区使用量 jsonObject.put("memory_swap_free", swap.getFree() / (1024 * 1024L));// 当前交换区剩余量 renderJson(jsonObject); }
前端例子,cpu.js
layui.use(['jquery'], function() { $ = layui.jquery; $(function(){ var cpu_length=0; var date = []; var data = []; var cpu_echarts=[]; $.ajax({ url:"/back/home/cpu", type:"get", async: false, success:function(data){ cpu_length=data.cpu.length; } }); var dd=[]; for(var j=120;j>0;j--){ dd.push(0); } for(var i=0;i<cpu_length;i++){ $("#cpu_show").append('<div id="cpu_'+i+'" class="cpu"></div>'); cpu_echarts[i]=echarts.init(document.getElementById("cpu_"+i)) data[i]=dd; } for(var i=120;i>0;i--){ date.push(i); } var option = { animation:false, title: { left: 'center', text: 'cpu', }, xAxis: { type: 'category', boundaryGap: false, data: date, axisLabel:{ formatter:'{value}s' } }, yAxis: { type: 'value', boundaryGap: false, max:100, axisLabel:{ formatter:'{value}%' } }, series: [ { name:'cpu数据', type:'line', smooth:true, symbol: 'none', sampling: 'average', itemStyle: { normal: { color: 'rgb(255, 70, 131)' } }, areaStyle: { normal: { color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{ offset: 0, color: 'rgb(255, 158, 68)' }, { offset: 1, color: 'rgb(255, 70, 131)' }]) } }, data: [] } ] }; setInterval(function (){ $.post("/back/home/cpu",function(result){ $("#serverInfo_cpu").empty(); $("#serverInfo_cpu").append(JSON.stringify(result)); $.each(result.cpu,function(k,v){ var ddd=[]; for(var i=1;i<120;i++){ ddd.push(data[k][i]); } var num=(v.freq_combined).substring(0,(v.freq_combined).length-1); ddd.push(Math.floor(num)); data[k]=ddd; option.series[0].data=data[k]; option.yAxis.max=100; option.title.text="cpu"+k+" 使用率"+num+"%"; cpu_echarts[k].setOption(option); }); }); },1000); });});
附上sigar相关包 免积分下载地址:
http://download.csdn.net/detail/acmjk/9889210
阅读全文
1 0
- JFinal结合Sigar、echarts实现后台服务器监控
- sigar进行JAVA后台系统资源监控错误
- sigar监控
- Echarts后台Java实现
- snmp采集服务器信息(sigar.jar实现)
- snmp采集服务器信息(sigar.jar实现)
- java和python结合项目,实现ajax+echarts显示端口占用数监控
- Sigar系统监控
- Jfinal后台
- 后台数据结合百度echarts生成各类图表
- snmp协议采集服务器信息 (sigar.jar实现)
- 学习sigar--监控操作系统信息
- 使用Sigar监控系统性能
- kindEditor结合jfinal的图文上传功能的实现
- Jfinal框架下结合ajaxFileupload实现多文件上传
- Jfinal框架下结合ajaxFileupload实现多文件上传
- jfinal结合ajax
- 简单后台监控的实现
- 推荐系统学习--基于item的协同过滤算法及python实现
- PT项目--含税价PB00采购定价方案实例之二
- Android常用代码之普通及系统权限静默安装APK
- JS中this和对象作为函数参数的区别
- spark读取MySQL大Table的效能问题
- JFinal结合Sigar、echarts实现后台服务器监控
- less详解
- hostapd和wpa_supplicant工具移植到ARM Linux
- 贪心+二分
- Android性能模式 第一季
- 字符串String的 简单处理
- java中的内部类创建对象方法
- step by step
- android 文件目录权限