使用Python查询JMX
一、介绍
我们知道 java 项目中的 JMX 接口信息是十分有用的,我们可以提取这些信息来分析或告警。但是 JMX 的 API 只在 java 中实现,因此,找到一个 Python 代码调用 Java 代码的桥梁是非常有意义的。JPype 就是这样的一个工具,利用它可以使 Python 程序方便的调用 Java 代码,从而扩充 Python 语言的能力,弥补 Python 语言的不足。本文介绍了如何利用 JPype 来对JMX接口进行访问查询。官方地址:http://jpype.sourceforge.net/
二、安装
我们这里用pip安装简单一些。这里注意名称是JPype1。
# pip install JPype1
三、示例
#!/usr/bin/python
import jpype
from jpype import java
from jpype import javaxHOST='gf0'
PORT=8386
USER='admin' # 这里没有配安全认证的话可以不填
PASS='mypass' # 同上URL = "service:jmx:rmi:///jndi/rmi://%s:%d/jmxrmi" % (HOST, PORT)
#this it the path of your libjvm /usr/lib/jvm/sun-jdk-1.6/jre/lib/amd64/server/libjvm.so on linux
jpype.startJVM("/System/Library/Frameworks/JavaVM.framework/Libraries/libjvm_compat.dylib") # 这里写对应使用的jdk路径
java.lang.System.out.println("JVM load OK")jhash = java.util.HashMap()
jarray=jpype.JArray(java.lang.String)([USER,PASS])
jhash.put (javax.management.remote.JMXConnector.CREDENTIALS, jarray);
jmxurl = javax.management.remote.JMXServiceURL(URL)
jmxsoc = javax.management.remote.JMXConnectorFactory.connect(jmxurl,jhash)
connection = jmxsoc.getMBeanServerConnection();object="java.lang:type=Threading" # 查询线程
attribute="ThreadCount"
attr=connection.getAttribute(javax.management.ObjectName(object),attribute)
print attribute, attr#Memory is a special case the answer is a Treemap in a CompositeDataSupport
object="java.lang:type=Memory" # 查询内存
attribute="HeapMemoryUsage"
attr=connection.getAttribute(javax.management.ObjectName(object),attribute)
print attr.contents.get("used")
这里只列举了几个指标。在java mission control上可以看到完整的各个指标,都可以拿来查询分析。
四、参考地址
http://blog.nobugware.com/post/2010/11/08/jmx-query-python-cpython/
转载于:https://www.cnblogs.com/bugsbunny/p/8397715.html
使用Python查询JMX相关推荐
- python 查询 elasticsearch 常用方法(Query DSL)
2019独角兽企业重金招聘Python工程师标准>>> 1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsea ...
- python帮助生活-想把python运用在实际生活中?那么python查询价格方法可以帮助你...
[摘要]通过本次课程可以让python学员了解一下python查询价格方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...
- python生活中哪些运用_【想把python运用在实际生活中?那么python查询价格方法可以帮助你】- 环球网校...
[摘要]通过本次课程可以让python学员了解一下python查询价格方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...
- python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践
作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...
- python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践
在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口.数据库 API(在此例中为 Oracle API)就是一个例子.使用 Computronix 的 cx_Oracle ...
- python查询JCR分区
python查询JCR分区 直接上代码 结果 已编译好.exe文件下载 直接上代码 import requests from urllib import parse,request import js ...
- Python 查询QQ是否在线
''' Python 查询QQ是否在线 by 郑瑞国 使用第三方模块 requests ''' import requests from xml.etree import ElementTreewhi ...
- 通过 Python 查询 Excel 数据
通过 Python 查询 Excel 数据 我有一个记录学生信息的 Excel 表格,我想通过学生的姓名或者学号查询学生的信息. 学生信息如下 姓名 学号 性别 年龄 身份证号码 期末总成绩 张三 H ...
- JVM监控:python脚本JMX获取JVM状态
python脚本JMX获取JVM状态 主要原理: 主要通过python库jmxquery,jmxquery是通过python脚本调用它里面的JAR包的JAVA方法连接JMX端口,以获取JVM的状态. ...
最新文章
- ubuntu 18.04 配置notebook远程连接的坑
- 微信小程序之配置app.json
- JavaScript区分click事件和mousedown(mouseup、mousemove)方法
- mysql 执行计划 优化_执行计划
- 每日程序C语言19-求阶乘的前20项和
- ROS2 on android,ROS2 通过Debian安装ROS2
- BestCoder Round #67 (div.2) 1001——N bulbs
- Spring JDK动态代理
- linux patch
- 计算机体系结构现状及发展论文,计算机体系结构的发展及技术问题探讨
- JMockit学习笔记
- 哈佛引用格式(Harvard referencing system)
- java调用手机截屏_android实现手机截屏并保存截图功能
- 模式识别教材书选择填空期末汇总
- matlab图片白边_matlab 图像保存时去除白边
- 庄子:当你一事无成,感到茫然无助时,读懂这几句话,会让你重新看待人生
- 物联网使用什么数据库_如何使用关系数据库实现大规模物联网
- 骨龄预测代码学习(一)
- 您有一篇Maven 常用命令的文章,请注意查收!
- python采集资料库所有英雄皮肤图片包含炫彩
热门文章
- 攻防世界simple php,攻防世界 新手训练营 simple_php
- win10系统开启打印机服务器,win10系统开启打印机服务的处理技巧
- 大数据Mapreduce编程——矩阵乘法
- 手机微信ua大全,最新不重复的UA库
- 快递代取项目——结构化需求分析与建模
- 外网访问内网打印机(服务器访问本地打印机)
- 关于设计思维课程的学习思考
- [ISUX译]iOS 9人机界面指南(三):iOS 技术
- go语言管道(channel)
- 《薄冰实用英语语法详解》独家连载之十九:倒装