一、介绍

我们知道 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相关推荐

  1. python 查询 elasticsearch 常用方法(Query DSL)

    2019独角兽企业重金招聘Python工程师标准>>> 1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsea ...

  2. python帮助生活-想把python运用在实际生活中?那么python查询价格方法可以帮助你...

    [摘要]通过本次课程可以让python学员了解一下python查询价格方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...

  3. python生活中哪些运用_【想把python运用在实际生活中?那么python查询价格方法可以帮助你】- 环球网校...

    [摘要]通过本次课程可以让python学员了解一下python查询价格方法,对代码编程有个感性的认知.也好让大家能够理性选择,不要盲目跟从,选择适合自己当前阶段的学习内容,循序渐进,以兴趣自我探索为向 ...

  4. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...

  5. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口.数据库 API(在此例中为 Oracle API)就是一个例子.使用 Computronix 的 cx_Oracle ...

  6. python查询JCR分区

    python查询JCR分区 直接上代码 结果 已编译好.exe文件下载 直接上代码 import requests from urllib import parse,request import js ...

  7. Python 查询QQ是否在线

    ''' Python 查询QQ是否在线 by 郑瑞国 使用第三方模块 requests ''' import requests from xml.etree import ElementTreewhi ...

  8. 通过 Python 查询 Excel 数据

    通过 Python 查询 Excel 数据 我有一个记录学生信息的 Excel 表格,我想通过学生的姓名或者学号查询学生的信息. 学生信息如下 姓名 学号 性别 年龄 身份证号码 期末总成绩 张三 H ...

  9. JVM监控:python脚本JMX获取JVM状态

    python脚本JMX获取JVM状态 主要原理: 主要通过python库jmxquery,jmxquery是通过python脚本调用它里面的JAR包的JAVA方法连接JMX端口,以获取JVM的状态. ...

最新文章

  1. ubuntu 18.04 配置notebook远程连接的坑
  2. 微信小程序之配置app.json
  3. JavaScript区分click事件和mousedown(mouseup、mousemove)方法
  4. mysql 执行计划 优化_执行计划
  5. 每日程序C语言19-求阶乘的前20项和
  6. ROS2 on android,ROS2 通过Debian安装ROS2
  7. BestCoder Round #67 (div.2) 1001——N bulbs
  8. Spring JDK动态代理
  9. linux patch
  10. 计算机体系结构现状及发展论文,计算机体系结构的发展及技术问题探讨
  11. JMockit学习笔记
  12. 哈佛引用格式(Harvard referencing system)
  13. java调用手机截屏_android实现手机截屏并保存截图功能
  14. 模式识别教材书选择填空期末汇总
  15. matlab图片白边_matlab 图像保存时去除白边
  16. 庄子:当你一事无成,感到茫然无助时,读懂这几句话,会让你重新看待人生
  17. 物联网使用什么数据库_如何使用关系数据库实现大规模物联网
  18. 骨龄预测代码学习(一)
  19. 您有一篇Maven 常用命令的文章,请注意查收!
  20. python采集资料库所有英雄皮肤图片包含炫彩

热门文章

  1. 攻防世界simple php,攻防世界 新手训练营 simple_php
  2. win10系统开启打印机服务器,win10系统开启打印机服务的处理技巧
  3. 大数据Mapreduce编程——矩阵乘法
  4. 手机微信ua大全,最新不重复的UA库
  5. 快递代取项目——结构化需求分析与建模
  6. 外网访问内网打印机(服务器访问本地打印机)
  7. 关于设计思维课程的学习思考
  8. [ISUX译]iOS 9人机界面指南(三):iOS 技术
  9. go语言管道(channel)
  10. 《薄冰实用英语语法详解》独家连载之十九:倒装