jmx4r icon indicating copy to clipboard operation
jmx4r copied to clipboard

a JMX library for JRuby

jmx4r[http://github.com/jmesnil/jmx4r/] is a JMX library for JRuby.

It can be used to write simple Ruby scripts running on JRuby[http://jruby.org] to manage remote Java applications (e.g. JBoss[http://www.jboss.org], Tomcat[http://tomcat.apache.org/]) using JMX[http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/].

jmx4r helps to manage Java applications using JMX in a simple and powerful way:

  • no need to depend on the Java interfaces of the MBean in your management code. This means less deployment issues
  • Thanks to Ruby metaprogramming toolset, you can treat your MBeans as simple objects and jmx4r hides all the complexity to map them to the javax.management API for you
  • you can manage your own JVM (e.g. if you're running a Rails on JRuby application) or a remote JVM in the same way

== Installation

jruby -S gem install jmx4r

== Usage

To trigger a garbage collection on a Java application:

require 'rubygems' require 'jmx4r'

JMX::MBean.establish_connection :host => "localhost", :port => 3000

memory = JMX::MBean.find_by_name "java.lang:type=Memory"

display verbose GC logs

memory.verbose = true

trigger a Garbage Collection

memory.gc

For local processes not publishing jmxrmi ports, instead:

connect to the local JConsole process

JMX::MBean.establish_connection :command => /jconsole/i

== Help

  • RDoc[http://rubydoc.info/gems/jmx4r/frames]

== Source Code

git clone git://github.com/jmesnil/jmx4r.git