Produce and consume JMX beans from Clojure.
Latest stable release: 0.3.4
Leiningen dependency information:
[org.clojure/java.jmx "0.3.4"]
Maven dependency information:
<dependency>
<groupId>org.clojure</groupId>
<artifactId>java.jmx</artifactId>
<version>0.3.4</version>
</dependency>
(require '[clojure.java.jmx :as jmx])
What beans do I have?
(jmx/mbean-names "*:*")
-> #<HashSet [java.lang:type=MemoryPool,name=CMS Old Gen,
java.lang:type=Memory, ...]
What attributes does a bean have?
(jmx/attribute-names "java.lang:type=Memory")
-> (:Verbose :ObjectPendingFinalizationCount
:HeapMemoryUsage :NonHeapMemoryUsage)
What is the value of an attribute?
(jmx/read "java.lang:type=Memory" :ObjectPendingFinalizationCount)
-> 0
Give me all the attributes:
(jmx/mbean "java.lang:type=Memory")
-> {:NonHeapMemoryUsage
{:used 16674024, :max 138412032, :init 24317952, :committed 24317952},
:HeapMemoryUsage
{:used 18619064, :max 85393408, :init 0, :committed 83230720},
:ObjectPendingFinalizationCount 0,
:Verbose false}
Find an invoke an operation:
(jmx/operation-names "java.lang:type=Memory")
-> (:gc)
(jmx/invoke "java.lang:type=Memory" :gc)
-> nil
Conneting to another process? Just run any of the above code inside a with-connection:
(jmx/with-connection {:host "localhost", :port 3000}
(jmx/mbean "java.lang:type=Memory"))
-> {:ObjectPendingFinalizationCount 0,
:HeapMemoryUsage ... etc.}
Serve your own beans. Drop a Clojure ref into create-bean to expose read-only attributes for every key/value pair in the ref:
(jmx/register-mbean
(jmx/create-bean
(ref {:string-attribute "a-string"}))
"my.namespace:name=Value")}
mvn install
will produce a JAR file in the
target directory, and run all tests with the most recently-released build
of Clojure.Copyright © Stuart Halloway
Licensed under the EPL. (See the file epl.html.)
Can you improve this documentation? These fine people already did:
Nick Bailey, Stuart Halloway, Alex Miller & Sean CorfieldEdit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close