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
