JMX监控ActiveMQ队列数据,用echats图标展示

	// jmx服务地址,注意端口
	static String jmxServiceURL = "service:jmx:rmi:///jndi/rmi://172.21.201.93:11099/jmxrmi";
	// brokerName和type的首字母要小写,大写会报错。brokerName要跟配置文件里的一样。
	static String objectName = "org.apache.activemq:brokerName=localhost,type=Broker";
	public ArrayList<HashMap<String, Object>> show() throws Exception {

		JMXServiceURL url = new JMXServiceURL(jmxServiceURL);
		JMXConnector connector = JMXConnectorFactory.connect(url, null);
		connector.connect();
		MBeanServerConnection connection = connector.getMBeanServerConnection();

		ObjectName name = new ObjectName(objectName);
		BrokerViewMBean mBean = MBeanServerInvocationHandler.newProxyInstance(connection, name, BrokerViewMBean.class,
				true);
		for (ObjectName queueName : mBean.getQueues()) {

			System.out.println("----");
			QueueViewMBean queueMBean = (QueueViewMBean) MBeanServerInvocationHandler.newProxyInstance(connection,
					queueName, QueueViewMBean.class, true);
			System.out.println("*******************************");
			System.out.println("消息队列名称:" + queueMBean.getName());
			System.out.println("队列中剩余的消息数:" + queueMBean.getQueueSize());
			System.out.println("消费者数:" + queueMBean.getConsumerCount());
			System.out.println("出队列数:" + queueMBean.getDequeueCount());
		}

	}

index.jsp 页面展示,柱状图

	<script type="text/javascript">
		// 基于准备好的dom,初始化echarts实例
		var myChart = echarts.init(document.getElementById('main'));
		var url = '${pageContext.request.contextPath}/ShowData';
		$.getJSON(url).done(function(json) {
			// 2.获取数据
			salesVolume = json.salesVolume;//销量
			bussinessVolume = json.bussinessVolume;//营业额
			months = json.months;//月份
			
			var xAxisDataList = [];
			var newsDataList = [];
			var consumerList = [];
			json.forEach(function(val, idx){
				xAxisDataList.push(val.queueName);
				newsDataList.push(val.queueSize);
				consumerList.push(val.consumerCount);
			});
			console.log(newsDataList);
			
			
			var option = {
				    title : {
				        text: 'ActiveMQ数据',
				        subtext: 'JMX监控'
				    },
				    tooltip : {
				        trigger: 'axis'
				    },
				    legend: {
				        data:['剩余消息数','消费者数']
				    },
				    toolbox: {
				        show : true,
				        feature : {
				            /* dataView : {show: true, readOnly: false},
				            magicType : {show: true, type: ['line', 'bar']},
				            restore : {show: true}, */
				            saveAsImage : {show: true}
				        }
				    },
				    calculable : true,
				    xAxis : [
				        {
				            type : 'category',
				            data: xAxisDataList
				        }
				    ],
				    yAxis : [
				        {
				            type : 'value'
				        }
				    ],
				    series : [
				        {
				            name:'剩余消息数',
				            type:'bar',
				            data: newsDataList
				        },
				        {
				            name:'消费者数',
				            type:'bar',
				            data: consumerList
				        }
				    ]
				};
			myChart.setOption(option);
		})
	</script>




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值