写点什么

jmx4r——JMX 的 Ruby 之路

  • 2007-06-30
  • 本文字数:1122 字

    阅读完需:约 4 分钟

运行在一个如 Java 这样的成熟平台上的好处之一是可用性,比如有监控这样的成熟特性。JRuby 核心团队成员 Ola Bini,发现这对监控 JRuby 应用的内存行为是有用的

只需在 Java 6 上运行 JRuby,你就可免费获得它。本质上你可以把它连上任何 Java 进程。远程也可以。并且获取这类信息。你的 Ruby 能做这事吗?

他用来监控 JVM 进程的工具是JConsole,该工具从 Java 5 开始就自带了。现在有另一种访问 JMX 信息的方法了: Jeff Mesnil jmx4r ,它允许从 JRuby 代码中访问 JMX MBeans。下面是一个简单的例子: require 'java'<br></br>require 'jmx4r'<br></br>memory = JMX::MBean.find_by_name "java.lang:type=Memory"<br></br>memory.verbose = true<br></br>memory.gc 这是用默认连接参数连接到 localhost 上 MBean 服务器,你还可以使用自定义的 JMX Service URL。Jmx4r 使用 RubyMetaprogramming技术从 JMX 客户端代码中删除了样板文件。这允许以 Ruby 的方式访问 JMX MBean 的操作和属性。

在例子中,memory.verbose 是一个属性,通常必须使用 verbose JMX 方法调用来设置。Jmx4r 在代表 memory MBean 的类中设置访问器(accessor)。关于该 MBean 的信息被获取,而且define_method被用来为每个属性创建必要的方法。

method_missing帮助支持操作,当方法调用没有找到对应的方法定义时,该方法被调用。例子中,memory.gc 是一个对 Memory Mebean 操作的调用,用来运行垃圾回收器(Garbage Collector)——但是该方法并没有在 memory 对象所属类中定义。取而代之,method_missing 方法被调用,确定是否有该方法名的操作,接着利用 JMX API 调用该操作。

像 jmx4r 这样的类库的最大优势是,可以与 JRuby 交互式 shell(如 jirb)一起工作。这就允许开发者或 JRuby savy admin 去访问一个(或多个)MBean 服务器,而保留该语言的所有强大能力。这对还没有自动化的批量工作处理是有用的。另一个来自 jmx4r 网站的例子如下:

logging = JMX::MBean.find_by_name "java.util.logging:type=Logging"<br></br>logging.logger_names.each do |logger_name|<br></br> logging.set_logger_level logger_name, "INFO"<br></br>end
该例查询所有 logger 并一举改变了它们的 log 级别。在一个图形化工具中,需要对每个 logger 点击数下才能达到同样效果。更不用说,一旦该代码被编写并证明可用,可以保存到脚本中并重复使用。另一个好处是 JRuby 进程通过联系其 MBean 服务器具有监控其自己 JVM 的能力。最近新增的特性是提供认证支持。下面是使用样例:

JMX::MBean.establish_connection :host => "localhost", <br></br>  :username => "jeff", :password => "secret" <br></br>查看英文原文: JMX the Ruby way with jmx4r

2007-06-30 02:29575
用户头像

发布了 150 篇内容, 共 41.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Apache Doris 1.1.4 版本正式发布!

SelectDB

数据库 大数据 数据仓库 Doris LTS

Java Web(四)JS

浅辄

javaWeb JavaScrip 11月月更

现代API的类型划分

阿泽🧸

API 11月月更

阿里CTO程立:首个全面深度用云的天猫双11,更敏捷、更经济、更绿色

阿里技术

云计算 severless

科普|什么是元宇宙

NFT Research

区块链 NFT 元宇宙

模块五-作业

Weldon

架构实战营

几分钟实现对恶意IP地址进行拦截,腾讯云Web防火墙实在太香了!

wljslmz

腾讯云 Web应用防火墙 黑名单 11月月更

泛型由入门到精通

好程序员IT教育

实践竞争力第一!洞见科技获评艾瑞咨询隐私计算金融市场「综合领导者」

洞见科技

数据报告 | 2022年双十一变化趋势分析报告

前嗅大数据

双十一 数据报告 电商报告

数据中心的能源之翼:华为数据中心能源与伙伴共同飞翔

脑极体

【spring-kafka】@KafkaListener详解与使用

石臻臻的杂货铺

kafka 11月月更

区块链基础知识介绍及dapp简单介绍

W13902449729

区块链 dapp

创建一个科学决策必备的A/B实验,都需要哪些准备?——火山引擎 DataTester 使用指南

字节跳动数据平台

大数据 A/B测试

EventBridge助力阿里云视觉智能开放平台AI智能存储实践

Apache RocketMQ

AI 消息队列 EventBridge

RocketMQ 在物流行业的应用与运维

Apache RocketMQ

RocketMQ 消息队列 Apache RocketMQ

用python写一个时钟模型

乔乔

11月月更

洞见科技中标安康市数据要素流通平台(隐私计算平台)建设项目

洞见科技

昇腾AI异构计算架构CANN 6.0全新开放升级,全面释放AI生产力

Geek_2d6073

什么是区块链Dapp智能合约系统开发?

W13902449729

区块链 dapp开发

阿里云研究员马涛:龙蜥社区做对了两件事

云布道师

开源 云栖大会 龙蜥社区

专访吴静涛丨从未有人把金融信创挑战说的这么透彻!

云科通明湖

AI音乐创作,让每一个人都成为音乐家

叶落便知秋

【C语言】else 语句

謓泽

11月月更

一篇文章彻底理解数据库的各种超时参数

明哥的IT随笔

数据库 JDBC

应用发布新版本如何保障流量无损

阿里巴巴云原生

阿里云 微服务 云原生

洞见科技中标浙江农商联合银行「隐私计算平台」项目

洞见科技

KUMU×微帧科技,为菲律宾独角兽提供编码API服务

微帧Visionular

数据分析的步骤

穿过生命散发芬芳

数据分析 11月月更

网址访问速度免费加速教程:又拍云cdn

程序员余白

网页加速 CDN加速 11月月更

Vue插件(plugin)

Augus

vue.js 11月月更

jmx4r——JMX的Ruby之路_Java_Werner Schuster_InfoQ精选文章