For the impatient just look here :) http://hawt.io/

Background
==========
We've had numerous consoles all over the place for some time in
various projects like Felix, Karaf, ActiveMQ, Camel, Tomcat, Fuse
Fabric to name but a few. Many of them quite heavy weight requiring a
custom web app to be deployed (which often is quite large); none
particularly working together.

We've been working on Fuse Fabric and its management console to
provide a more consolidated view of a cluster of Apache integration &
middleware technologies. Increasingly we're seeing our users and
customers using different combinations of technologies in different
containers (e.g. Tomcat + ActiveMQ or Karaf + Camel or Fuse Fabric +
Karaf + ActiveMQ + Camel or whatever).

So for a few months a few of us have been working on trying to make
the various web consoles for things like Apache Camel, ActiveMQ,
Felix/Karaf/OSGi & Fuse Fabric (long with more generic things like JMX
& OSGi) available as lightweight HTML5 plugins so they can be mixed
and matched together to suite any container and combination of
technologies that folks deploy in a JVM.


hawtio
=====
The result so far is hawtio: http://hawt.io/

You can deploy it as a WAR in any JVM (or feature in karaf) and it
provides a UI console for whatever it finds in the JVM. So it works
with Tomcat / Jetty / Karaf / JBoss / Fuse Fabric; and has plugins for
JMX, OSGi, ActiveMQ, Camel & Fuse Fabric so far with others on the
way.

The nice thing is its pretty small (about 1Mb WAR containing all the
server side code, HTML, JS, images, CSS etc). The only real server
side component is jolokia which is a small (about 300K) REST connector
for JMX (which is awesome BTW!) - the rest is static content (which
could be served from anywhere so doesn't need to be deployed in each
JVM).

Its based around a plugin architecture:
http://hawt.io/developers/plugins.html

so its easy to add new plugins for any kind of technology. A plugin is
pretty much anything that runs in a browser.

The nice thing is hawtio can discover UI plugins at runtime by
examining the contents of the JVM or querying REST endpoints; so the
UI can update in real time as you deploy new things into a JVM!


hawtio, the hawt camel rider
======================
A quick summary of the current features for camel folks:

* If you have any camel contexts running in a JVM when hawtio starts
up it adds an Integration tab which shows all the camel contexts
running.

* You can start/stop/suspend/resume the context and its routes; then
look at all the metrics for routes/endpoints/processors. The Charts
tab lets you visualise the real time metrics.

* You can create new endpoints; browse endpoints which are browsable &
send messages to endpoints (with syntax editing support for JSON / XML
/ YAML / properties)

* You can visualise all the camel routes or a specific camel route for
a context in the Diagram tab and see real time metrics of how many
messages are passing through each step on the diagram. e.g.
https://raw.github.com/hawtio/hawtio/master/website/src/images/screenshots/camelRoute.png

* Clicking on a Route allows you to Trace it; when tracing if you send
a message into a route then it captures a copy of the message at each
point through the route. So you can step through (scroll/click through
the table) a route and see the message contents and how the message
flows through the EIPs - highlighting where on the diagram each
message is. This is very handy for figuring out why your route doesn't
work :) Spot where the heading disappears! Or see why the CBR doesn't
go where you expected.

In general most of the runtime features of the open source Fuse IDE
eclipse tooling are now supported in the camel hawtio plugin; so
available in a web browser.


Summary
=======
So if you're vaguely interested in web consoles for Apache Camel I
urge you to give it a try. We love contributions and feedback!
http://hawt.io/contributing/index.html

or feel free to raise new issues for how to improve the camel plugin:
https://github.com/hawtio/hawtio/issues?labels=camel&page=1&sort=updated&state=open

or if you've an itch for a new kind of plugin please dive in! We
should be able to expose existing web apps/consoles as links inside
hawtio too BTW.

Feedback appreciated! Its hawt, but stay cool! ;)

--
James
-------
Red Hat

Email: jstra...@redhat.com
Web: http://fusesource.com
Twitter: jstrachan, fusenews
Blog: http://macstrac.blogspot.com/

Open Source Integration

Reply via email to