(3)使用Highcharts开发JVM监控内存

先上效果图:


图像用到的工具是Highcharts,Servlet取得内存,用Highcharts来在页面展示。

需要导入的js文件:highcharts.js、jquery-1.4.3.js

Servlet:

package com.xdy.monitor.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.math.BigDecimal;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MemoryServlet extends HttpServlet{

	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req,resp);
	}

	public void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		Runtime runtime = Runtime.getRuntime();
		long max = runtime.maxMemory()/(1024*1024);//获取最大内存大小,单位M
		long total = runtime.totalMemory()/(1024*1024);//总内存大小
		long free = runtime.freeMemory()/(1024*1024);//空闲内存大小
		long available = max-total+free;//可用内存
		
		BigDecimal bAvailable = new BigDecimal(available);
		bAvailable = bAvailable.setScale(2, BigDecimal.ROUND_HALF_UP);
		
		resp.setContentType("text/html;charset=utf-8");
		PrintWriter pw = resp.getWriter();
		pw.print(bAvailable.toString());
		pw.flush();
		pw.close();
	}
	
}

index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>

		<title>JVM内存监控</title>
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<style type="text/css">
			#container{
				border:1px solid black;
			}
		</style>
		<script type="text/javascript" src="js/jquery-1.4.3.js"></script>

		<script type="text/javascript">
			function getJVMMemory(){
				var res;
				$.ajax({
					async:false,
					type:'post',
					url:'memoryServlet',
					success:function(data){
						res = data;
					}
				});
				return res;
			}
		
			$(function(){
			
				Highcharts.setOptions({
					global: {
						useUTC: false
					}
				});
				
				$("#container").highcharts({
					//标题
					title:{
						text:'JVM监控内存--探花',
					},
					//副标题
					subtitle:{
						text: '制作:探花 20150829',
					},
					//图标区
					chart:{
						type:'spline',
						events:{
							load:function(){
								var series = this.series[0];
								setInterval(function(){
									var result = getJVMMemory();
									var x = (new Date()).getTime();
									series.addPoint([x,parseFloat(result)],true,true);
								},2000);
							}
						}
					},
					//X轴
					xAxis:{
						type:'datetime',
						tickPixelInterval:100,
						title:{
							text:'时间'
						}
					},
					//y轴
					yAxis:{
						title:{
							text:'可用内存'
						},
						labels:{
							formatter:function(){
								return this.value + 'M';
							}
						}
					},
					//提示
					tooltip:{
						formatter:function(){
							var str = '<b>'+this.series.name+'</b><br/>'+Highcharts.dateFormat('%Y-%m-%d %H:%M:%S',this.x);
							str += '<br/>'+Highcharts.numberFormat(this.y,2);
							return str;
						}
					},
					//图表版权信息
					credits:{
						text:'探花',
						href:'www.baidu.com'
					},
					//图例
					legend:{
						enabled:false
					},
					//导出
					exporting:{
						enabled:false
					},
					//数据列
					series:[{
						name:'JVM可用内存',
						data:(function(){
							var data = [];
							var time = (new Date()).getTime();
							for(var i = -10;i<=0;i++){
								data.push({
									x:time+i*1000,
									y:100
								});
							}
							return data;
						}())
					}]
				});
			});
		</script>
	</head>



	<body>
		<script src="js/highcharts.js"></script>
		<script src="js/exporting.js"></script>
		<div id="container"></div>
	</body>
</html>


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值