The primary focus for the latest release of JXInsight has been:
"Delivering a resource metering solution that could be used to measure a large number of very fine grain events (method calls) whilst still keeping the overhead to a minimum and within industry standards for monitoring of production systems.”
According to their website, where they published snippets from their SPECjvm2008 results, their raw overhead (as measured by operations per minute) eclipsed that of their competitors.
Another benefit that you’ll notice in this release is faster startup times and a smaller memory footprint. This is due to the fact that they enhanced their AspectJ load-time weaver to transparently “switch from load-time to binary weaving following the first execution of an application.” This allows you to avoid much of the instrumentation overhead that you would normally absorb during the startup of a large application.
For the Java community, one of the big drivers for trying JXInsight is the availability of a free developer edition of JXInsight. Asked about JInspired’s motivation behind releasing it at no cost, William stated:
“Each month we have on average 1,000 downloads of our free development edition. The benefit to us is that developers have sufficient time to play and experiment with the tool before making a purchase for a test or production environment. JXInsight has been designed to tackle the most complex of problems related to performance, transaction semantics, runtime capacity and reliability - problems I have encountered myself in the field. So it does not present a primitive GREEN and RED circles dashboard but instead provides an unprecedented amount information visualized from many different perspectives and in unique ways.”
The free developer edition includes all the capabilities of the server edition, but limits console and terminal connectivity to the first 45 minutes. You are still able to analyze snapshots offline with no time limit, but you are only able to capture snapshots within the first 45 minutes that your JVM is running.
With respect to the user interface, the following shows an example of a trace that runs from an HTTP request through a JNDI lookup of a database connection pool, and then into the SQL that was executed:
The next image then continues the story by looking deeper into the database behavior itself:
JXInsight has a different implementation strategy from many of the performance analysis vendors by implementing an “Open API” abstraction layer that is independent of its instrumentation logic. Asked about the details of how JXInsight gathers its data, William responded:
“JXInsight uses various different approaches including AspectJ AOP, native BCI, Interceptors (CORBA), Listeners (JSF PhaseListener), Filters (ServletFilter), Dynamic Proxies (Spring AOP), and Wrappers (JDBInsight JDBC DataSources), JMX (Management Metrics), as well as product specific API's (Coherence, GridGain). In the last 2 releases we have focused much more on AspectJ shipping 400+ technology specific aspect extension libraries though we are planning on looking at providing similar extensions based on other upcoming instrumentation toolkits can also be extended by our customers.”
So where are they taking JXInsight from here? William and his team are focused on the following for version 5.7:
“The main goal with this release is to bridge the gap between system monitoring data models (metrics) and software monitoring data models (probes, traces and transactions) by being able to relate elements in one model to elements in another model in either direction.”
Moving beyond the free developer edition, here is the Server Edition pricing:
Price: 5,600 USD for 2 CPU Base Installation, 1,600 USD Per Additional CPU Only Applicable to US Based Customers
Price: 3,900 EURO for 2 CPU Base Installation, 1,100 EURO Per Additional CPU
You can find more information about performance and scalability at: http://www.infoq.com/performance-scalability