This is an invalid use of the MBean names. The keys in an ObjectName are unordered. It is a bug to depend on a specific ordering of the keys.
-Dennis On 03/19/2013 10:07 AM, Manik Surtani wrote: > Hi James. > > Strange that no one else has responded to you on this list as yet; I'm all > for reorganising the JMX names to suit Hawt.io, but not by default since it > will affect our JON/RHQ plugins. > > Care to create a JIRA in Infinispan to allow a JVM system parameter to swap > the JMX name components around as you propose? > > Regarding a Hawt.io plugin for Infinispan, I'd love to see this. What > additional operations are you suggesting? > > Cheers > Manik > > > On 27 Feb 2013, at 15:54, James Strachan <[email protected]> wrote: > >> Howdy folks! >> >> I'm working on a HTML5 web console called hawtio (http://hawt.io) >> which is a pluggable & modular console for various Java libraries, >> frameworks and containers. e.g. today it has plugins for Apache Camel, >> ActiveMQ, Fuse Fabric as well as JMX, OSGi & Logging - then plugins >> for containers like Tomcat, Jetty, JBoss, Karaf/ServiceMix. We've a >> cute dashboard & wiki which uses git to store its configuration/files >> too. >> >> Anyway the reason I bring this up is yesterday we had our first >> Infinispan issue with hawtio: >> https://github.com/hawtio/hawtio/issues/134 >> >> its now fixed; but it got me thinking if we could have a nice little >> hawtio plugin for Infinispan so folks could make dashboards of real >> time metrics of caches, browse caches etc. >> >> >> I enabled metrics and managed to get a basic JMX tree going with real >> time metrics on attributes/charts on a single Cache using vanilla JMX >> in hawtio with Infinispan. I've attached an example of how it looks if >> you're interested. >> >> The thing is, there's no way to easily click on a folder and get all >> the MBeans for the Statistics. If that were the case then hawtio would >> show a sortable table of all the metrics of all the caches in one >> table view; or we could easily chart any of the metrics of all the >> caches in one real time chart easily. >> >> It'd be a fairly minor change; we'd just need to change the ObjectName >> used for the Cache mbeans from this naming convention: >> >> Infinispan:type=Cache,name="drink(local)",manager="DefaultCacheManager",component=Statistics >> >> to this (just moving the "name" property to the end) >> >> Infinispan:type=Cache,manager="DefaultCacheManager",component=Statistics,name="drink(local)" >> >> then in the hawtio JMX tree we could select the "Statistics" folder >> and see all of the mbeans in a table and so you could sort the table >> by metric, see all the values on a single screen & create real time >> charts of any permutation of cache & metric. >> >> I wondered if folks fancied either adopting this naming convention >> (putting the name last and the component kind before it) or adding a >> configuration flag so we could enable this kind of JMX naming >> convention style? It'd make things much more hawt when using hawtio >> and infinispan! :). You'd get nice HTML5 statistics in hawtio >> instantly on all caches. >> >> >> I also wondered if folks fancied adding a few more operations to the >> Cache mbean so that we could build a little console in hawtio for >> Infinispan; to view/update contents of the caches or flush them etc? >> >> As a background; since JMX is usually the lowest common denominator, >> hawtio defaults to using it to detect whats in a JVM. If we discover a >> particular kind of MBean we then enable/disable different parts of the >> hawtio UI dynamically. e.g. if you're viewing a JVM then you deploy >> some Apache Camel, hey presto, the Camel UI in hawtio appears as a >> tab. >> >>> From a technology perspective hawtio is all static HTML5 / JavaScript >> on the client; it then communicates with the MBeans via an awesome >> library called jolokia (http://jolokia.org/) which exposes JMX over >> HTTP/JSON. >> >> So hawtio could totally use the Infinispan REST API (but it'd be nice >> if there was an mbean registered to indicate the REST API is running >> and where to find it so hawtio could discover it). However you can >> usually rely more on JMX being there (folks don't always deploy >> Infinispan inside a web container with a REST API). So I wondered if >> folks fancied adding a simple little JMX API to query / update / flush >> the cache that we could then use to build a little HTML5 console in >> hawtio? >> >> e.g something valuely like: >> >> interface CacheMBean { >> ... >> >> String getJson(String key) >> >> void setJson(String key, String value); >> >> // lets browse the keys - in a simple paginated way some how.. >> Set<String> getCacheKeys( String from, int count); >> } >> >> You could return Objects; jolokia automarshalls things to JSON; though >> maybe having a specific JSON reading/writing mbean (using >> jolokia/jackson under the covers) might be neater as it'd work with >> all JMX tools? >> >> >> So in summary, I'm happy to help hack a little hawtio plugin for >> infinispan if anyone's interested. Making the cache ObjectName change >> would be a nice quick win & if more operations get added to the MBeans >> we can then easily build a better hawtio plugin for Infinispan. >> >> Thoughts? >> >> -- >> James >> ------- >> Red Hat >> >> Email: [email protected] >> Web: http://fusesource.com >> Twitter: jstrachan, fusenews >> Blog: http://macstrac.blogspot.com/ >> >> Open Source Integration >> <hawtio-infinispan.png>_______________________________________________ >> infinispan-dev mailing list >> [email protected] >> https://lists.jboss.org/mailman/listinfo/infinispan-dev > -- > Manik Surtani > [email protected] > twitter.com/maniksurtani > > Platform Architect, JBoss Data Grid > http://red.ht/data-grid > > > _______________________________________________ > infinispan-dev mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/infinispan-dev T _______________________________________________ infinispan-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/infinispan-dev
