JBoss Community

TransactionMonitoringAndVisualization

new comment by James Strachan View all comments on this document

As an aside, we've added breadcrumbs to Apache Camel, ActiveMQ and CXF so that we try to pass breadcrumbs over camel message exchanges, ActiveMQ JMS message flows and CXF web service/REST invocations so its easy to link together log messages, events and messages.

 

e.g. here's how Camel links the breadcrumbs to Java logging events

 

then we've a plugin in Fuse to write log statements and camel messages to ElasticSearch (so its kinda like logstash) then we can query and correlate the message flow by a particular breadcrumbId. (We don't yet generate a nice summary record per breadcrumbId with start/stop timings or timings at each endpoint - which would make this metadata easier to query from tools like the Polymeta Dashboard console).

 

Here's a little screencast showing using the Fuse web tooling which towards the end (maybe 8-10 mins in) shows the log searching and the camel message audit stuff which shows querying by breadcrumb ID - which is really just using ElasticSearch as the back end data store for querying data (via the Lucene query syntax) then the kibana web application for viewing/querying/filtering the data.

 

It'd be awesome to add better visualisation & reporting of the overall business flows; though at least the basics - storing log messages & camel message flows with bread crumbs is done - with ElasticSearch making it easy to query etc.

 

If you wanna play with the code, you could clone the Fuse github repo and then create a Fabric. If you wanna noodle the code that does the logging to ElasticSearch in Fuse, its insight-elasticsearch for log events and insight-camel for Camel message auditting.