java jmx 监控_只用五分钟为系统实现基于JMX的监控

早期是作为J2EE的一部分, 因此总给人一种开发起来会很"重"的感觉, 这让不少Java程序员宁愿选择自行实现"轻量级"方案. 时至今日, 借助一些优秀的开源项目, JMX 也可以用起来很"轻".

pojo-mbean 使用Annotation对MBean进行声明, 省去不少 JMX规范中要求的罗嗦代码, 不知道有多罗嗦的请见 这里 . 例如, ManagableServer 希望被声明为一个MBean, 只有两个步骤:

注解

@MBean(objectName="jsmx:type=Demo")

class ManagableServer {

@ManagedAttribute

public long getCount() {...}

@ManagedAttribute

public int getGauge() {...}

@ManagedOperation

public void shutdown() {...}

}

注册

ManagableServer mBean = new ManagableServer();

new MBeanRegistration(mBean).register();

运行之后, 你可以通过 jconsole 查看到已经发布的MBean.

jconsole.png

如果 jconsole 就可以满足你对监控的要求, 那么下文的内容大可不必再看啦.

使用 jolokia 访问MBean

jconsole 作为JDK自带的们免费工作还是很强大的, 它提供JVM最基本的监控能力, 然而默认的RMI通讯方式可能会由于安全原因而被限制使用.

jolokia 实现了通过HTTP+JSON的方式访问MBean, 很好的解决这个问题. 无需额外编写代码便可使用, 只需要在启动命令中指定 -javaagent 选项即可实现:

java -javaagent:/path/to/jolokia-jvm-jdk6-x.xx-agent.jar=port=7777,host=localhost -cp ...

dashboard.png

开发一个真正满足应用的 web console 肯定不是5分钟能够搞定的, 专业的监控平台还是有很多可供使用的, Ganglia 便是其中之一.

如题所述, jmxetric 就提供方便与 Ganglia 集成解决方案, 同样无需额外编写代码, 实现的两个步骤是:

声明数据采集点

java -javaagent:/path/to/jmxetric-0.0.x.jar=config=etc/jmxetric.xml,wireformat31x=true -cp ...

在 jmxetric -0.0.6中, 若要设置wireformat31x为true只有在 javaagent option中设置才能生效, 详情请见 issue25 .

在 Ganglia 中的效果是:

ganglia.png

结束语

细节是魔鬼! "5分钟"虽有点标题党, 但丰富的开源资源确实令JMX使用变的超级容易啦.完整的Demo在 这里 . 期待更多更好更有创意的做法!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wsld2java axis_Weblogic+axis2安装

Weblogicaxis2安装实验环境系统版本使用到软件软件版本Redhat 6.3Ld-linux.so.2Ld-linux.so.2 安装的weblogic的需要安装(系统自带)Weblogic10.3Axis21.41在以下实验中我使用的是1.41的war包 ,下载war包的话可以在weblogic中进行部署。实验步骤:启动webl…

java流读写_java流概述以及文件读写示例

1. 先分清楚是字节流还是字符流。字节流:InputStream OutputStream字符流:Reader Writer字符流与字节流的区别是读取的单位长度不同,字节流读8字节,字符流读16字节,所以有中文时,就得用字符流。2. 在字节/字…

python自动化操作应用程序错误_web自动化中踩过的低级错误坑(python+selenium)

1.定位了元素没有做下一步操作,比如,点击、输入等功能,而报错,报错信息如下:2.上传图片时,定位元素,应该定位input标签,点击页面input标签肉眼没有看到定位到任何元素,以…

qgis折点打断_arcgis在折点处打断并建立网络分析(最短路径等问题)

目的:GIS网络分析用于对段路径等问题。这里仅仅讲述如何建立网络分析。网络建立前必须满足以下条件1.要素文件在节点处打断(本文下面会叙述)2.要素文件在地理数据库里的数据集里(一般是这样)3.要素文件包含的数据集里已经验证拓扑,并确保没有错误(可选)注…

base64 java php_利用PHP将图片转换成base64编码的实现方法

先来说一下为什么我们要对图片base64编码base64是当前网络上最为常见的传输8Bit字节代码的编码方式其中之一。base64主要不是加密,它主要的用途是把某些二进制数转成普通字符用于网络传输。由于这些二进制字符在传输协议中属于控制字符,不能直接传送&…

(BFS)Knight Moves(hdu1372)

题目: 在象棋王国,尼古拉斯.火山是一匹英俊的马,他非常幸运迎娶了白马王国的公主,他们将度蜜月,你现在是他们的女仆,火山会问你去一些地方最少需要多少步,这么简单的事当然难不倒你。由于火山是…

java上机作业要注意什么_Java第八次上机作业

1、请按照以下要求设计一个学生类Student,并进行测试。要求如下:1)Student类中包含姓名、成绩两个属性2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.3)Student类中定义一个无参的构造方法和一个接收两…

java windows 2008_Windows server 2008 R2 安装Java环境

一、配置环境操作系统软件包Windows server 2008 R2jdk_1.7.rar二、安装操作1.右击解压jdk_1.7.rar;解压后双击运行jdk-7u79-windows-i586 .exe2.点击【下一步】一直到有个【更改】按钮,可以更改安装路径,设置完成后点击“下一步”。到达这个…

java 匿名类型_Java之匿名类讲解

匿名类,正如名字一样在java中没有名字标识的类,当然了编译后还是会安排一个名字的。下面是一个关于匿名类的简单例子:public classClient {public static voidmain(String[] args) throws InterruptedException {Thread tnew Thread(newRunna…

(并查集)小希的迷宫

题目: 上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走。但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B&…

(并查集)食物链

题目: 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。A吃B, B吃C,C吃A。 现有N个动物,以1-N编号。每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。 有人用两…

多线程销售问题java_Java多线程Runable售票系统实现过程解析

一、无等待,直接出票【虽然解决了不会冲票问题,但显然不符合实际生活】:package com.thread.sale;public class Sale {public static void main(String[] args) {//悟,那么设计爬虫的时候,下载的资源唯一,使…

带权并查集-Building Block

题目&#xff1a; John are playing with blocks. There are N blocks (1 < N < 30000) numbered 1…N。Initially, there are N piles, and each pile contains one block. Then John do some operations P times (1 < P < 1000000). There are two kinds of ope…

(模拟+floyd)Saving James Bond

题目&#xff1a; This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land at the center of a lake filled with…

(dijkstra算法+多权值)最短路径问题

给你n个点&#xff0c;m条无向边&#xff0c;每条边都有长度d和花费p&#xff0c;给你起点s终点t&#xff0c;要求输出起点到终点的最短距离及其花费&#xff0c;如果最短距离有多条路线&#xff0c;则输出花费最少的。 Input 输入n,m&#xff0c;点的编号是1~n,然后是m行&am…

php 取经纬度,php根据地址获取百度地图经纬度的实例方法

首先我们来看全部实例代码&#xff1a;/*** param string $address 地址* param string $city 城市名* return array*/function getLatLng($address‘‘,$city‘‘){$result array();$ak ‘‘;//您的百度地图ak&#xff0c;可以去百度开发者中心去免费申请$url "http://…

php 留言板分页显示,php有分页的留言板,留言成功后怎么返回当前页?

比如我在【index.php?p3】发布留言&#xff0c;成功后怎么返回到 index.php?p3 这个页面&#xff1f;在【index.php?p5】发布留言成功后怎么返回index.php?p5这个页面&#xff1f;location.href"这里该怎么写&#xff1f;"涉及的页面有index.php&#xff0c;doac…

php class使用方法,PHP调试类Krumo使用教程

写程序最讨厌的是程序发生错误&#xff0c;但是却又不知道该从何debug起&#xff0c;我们通常会使用print_r 或者 var_dump 或者是 echo 慢慢的debug。如果你跟我一样使用PHP 5开发&#xff0c;现在可以使用Krumo这个简单好用的工具帮助我们做这件事情。虽然IDE也有内建的debug…

matlab 连接数组,matlab数组操作知识点总结

其实如果单从建模来讲&#xff0c;以下大部分函数都用不到&#xff0c;但是这些都是基础。第一点&#xff1a;数组与矩阵概念的区分数组&#xff1a;与其它编程语言一样&#xff0c;定义是&#xff1a;相同数据类型元素的集合。矩阵&#xff1a;在数学中&#xff0c;矩阵(Matri…

(组合数求模=乘法逆元+快速幂) Problem Makes Problem

题目&#xff1a; As I am fond of making easier problems, I discovered a problem. Actually, the problem is ‘how can you make n by adding k non-negative integers?’ I think a small example will make things clear. Suppose n4 and k3. There are 15 solutions.…