On 31/01/2013 13:51, James Strachan wrote:
> Howdy folks! I've seen various threads on management UI / JMX and so
> forth but figured it was maybe simpler to start a new thread; I wanted
> to share my recent experiences on the topic.
>
> So I've been working on an open source web based management console,
> initially for Apache ActiveMQ, Camel & Fuse Fabric. Its actually a
> pluggable HTML5 web console to manage stuff in a Java container. Its
> called hawtio:
>
http://hawt.io/
>
> Its a browser centric console based on a plugin model; we've plugins for
> JMX, logging, ActiveMQ, Camel, a dashboard, charting and so forth. One
> of the cool things about hawtio is that plugins can be discovered at
> runtime and plugins dynamically visualise themselves in the console
> based on whats running in the JVM. So if you ran hawtio on vertx, then
> you deployed a vertx module which used, say, Camel, you'd get the Camel
> tab appearing in the hawtio console. So different vertx modules could
> have their own UIs which come and go based on the modules you deploy in
> vertx.
My first response is "that's interesting and might save me writing it
from scratch".
> So if folks wanted, we could certainly help create some vertx plugins
> for hawtio which would give some nice eye candy for
> logging/charting/viewing the underlying metrics in vertx itself or
> deploying modules etc.
>
>
> Whether folks use hawtio or not though I also wanted to mention a
> library we're using in hawtio for the back end; jolokia:
>
http://jolokia.org/
>
> Jolokia is a small Java library (about 300K) which exposes JMX over REST
> / JSON; along with having a nice Java & JS API (and an interactive
> shell). Note I'm just a user of jolokia; but I've used it heavily and
> cannot recommend it enough :).
>
> So one thing that kinda amazed me when we created the Apache Camel and
> ActiveMQ plugins for hawtio was; the only server side we have is Jolokia
> along with the existing MBeans for the projects. Everything else is
> basically static content (HTML/CSS/images/JavaScript - using AngularJS).
> i.e. the JavaScript uses the Jolokia JS library to access JMX on the JVM
> via REST/JSON APIs (which support polling & batching nicely - though
> websockets would be even cooler :). Its also handy that Jolokia can
> connect from the browser to any JVM with Jolokia inside (CORS allowing).
> So one vertx instance could serve up the management console but the
> console could then connect directly to any JVM running jolokia. (Or
> jolokia's server supports proxying too).
My intention was/is to publish from nodes onto the vert.x eventbus, with
a node that can aggregate & publish collated stats. A REST API would be
part of that.
> I've often found JMX a bit of a PITA to work with;
Yup.
> though jolokia makes
> it really simple (even fun :) - everything's just a simple JSON REST
> endpoint - or a simple little Jolokia JS API call. Its also a pretty
> handy JVM lowest common denominator; most frameworks & libraries & the
> JVM itself offers lots of useful MBeans & its easy to write mbeans in
> any JVM language.
>
> So having JMX MBeans for vertx sounds like a good thing & they'd then
> just work over jolokia. It'd be good if we created a jolokia and/or
> hawtio module for vertx so its easy reuse the REST API for management or
> even hawtio for a nice UI console.
Yep, plan A is to expose the thread pools & some bus related metrics,
followed by adding some (obvious) counts around the other I/O endpoints
and if possible, verticle context selection counts.
> Thats not to say that hawtio can only work with JMX over jolokia; we
> could make plugins which use any kind of REST endpoint; though it seems
> JMX is a nice simple JVM way of exposing stats and operations in a
> language agnostic way.
>
> Anyway, just thought I'd give folks a heads up if anyone wanted to hack
> on a management console or was looking into management REST APIs etc
This is good. I'm mostly offline today/tomorrow but I'll take a look
and post back on this thread...
p
> --
> You received this message because you are subscribed to the Google
> Groups "vert.x" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
vertx+un...@googlegroups.com.
> For more options, visit
https://groups.google.com/groups/opt_out.
>
>
--
[key:62590808]