The latest version of JXInsight, an application performance monitoring and problem diagnostic solution software, supports activity based metering solution and JMX integration for Java applications. JInspired development team has recently announced the availability of JXInsight 5.7 version (nicknamed "Excel").
Activity-based costing (ABC) model identifies activities in the enterprise applications and assigns the cost of each activity resource to all products and services based on the actual consumption by each resource. JXInsight Probes provide the activity-based costing solution to assign costs to applications, services and components based on resource consumption. The probes runtime components measure the usage of resources by applications, services and components to help IT service management to combine key performance indicators (KPI) from both performance and cost management domains into a single management model.
JXInsight's Activity-based costing solution includes the following performance monitoring and management features.
- Dynamic Group Tags:
Tags can be used to create an additional cost center hierarchy based on the execution context that reflects much more of the dynamic aspects of the execution flow such as the name of the application, user, business transaction, web page, etc. Tagging is a way for the software to communicate the application level context for the current execution which can then be used by various extensions to the Probes runtime. It allows service management teams to charge customers (organizations, departments or users) for their metered usage of shared resources while still collecting billing from a system perspective. - Custom Resource Meters:
System administrators can create their own custom meters based upon existing resource metering data. This feature allows an administrator to explicitly relate the metered resource usage of a particular Group (cost center) with other Groups (cost centers) that have a direct or indirect cost dependency. The charges provide a cost breakdown analysis of metering within a group (cost center) by other groups. - Metering Strategies:
The probes runtime component allows for different metering strategies to create an adaptive cost management solution. The new version includes 3 new metering strategies: Busy, BusyThread and HighMemory. The busy strategies activate metering when a thread or managed process exhibit consistently high cpu usage for a specified period. The high memory strategy activates metering in the event of prolonged high heap memory usage.
The new release of JXInsight also supports JMX integration which includes the new probes management provider extension management beans (GroupMBean and MeteringMBean) which are registered with a local MBeanServer for every metered probe Group and associated resource Metering created. The JMX support also includes Oracle Coherence integration via the new Oracle Coherence management integration extension probe related MBeans. This managed bean is registered with Oracle Coherence grid-wide management and monitoring (JMX) framework making it possible to monitor every Metering or Group from any grid node.
The latest release also includes the following new features:
- Java 6 Support:
JXInsight support for Java 6 runtime is now available via a new JVMTI agent which supercedes the JVMPI agent on Java SE 5 runtime environments. Java 1.4 runtimes are still currently supported in this release though this is the last major update that will have such support. - Java Logging Integration:
The new logging probes provider extension can be enabled and configured to publish a LogRecord for each resource meter reading that exceeds a particular threshold defined per log level per meter. This is useful in the integration with existing legacy system monitoring tools that offer continuous scanning of log files in order to raise alerts and detect incidents. - Azul Systems Resource Meters
Support for Azul Systems compute appliance is provided via a special probes meter integration extension pack. This integration performs the resource metering locally within the compute appliance unlike other profiling solutions that require a network roundtrip back to the Azul client/proxy JVM. - JRuby-to-Ruby Probe Extension:
JXInsight 5.7 delivers the cross JVM language resource metering and billing solution with the JRuby extension. The metering data can be aggregated and tracked across Java and Ruby execution boundaries via the new JRuby-to-Ruby probes extension.
The latest version of JXInsight also comes with an API that can be ported to other languages, runtime environments, and platforms. The memory footprint for the aspect oriented runtime has been reduced for applications and additionally the memory footprint and file storage size for probes metering snapshots has been reduced.
There is also a second update to JXInsight 5.7 that was released earlier this week. This update introduces two new probes providers: non-reentrant and concurrent. The nonreentrant probes provider filters out recursive firing of named probes (calls). The concurrent probes provider can help identify execution points in a request processing pipeline that represent possible bottlenecks.
JXInsight is a part of JInspired's Extensible Software Performance Engineering (XPE) is a solution that spans the application life cycle to deliver a resource metering runtime environment. XPE introduces a method for software performance management along with a service delivery framework that provides guidance to combine and integrate people and products into the software performance engineering process.
InfoQ spoke with the product architect of JXInsight William Louth about the current features and future roadmap of the project. Responding to a question on what was the main driving factor behind the new "Activity Based Costing" feature, William said:
When we designed the probes runtime we made the decision to support an unlimited number of resources meters - not just clock time or cpu time which is the standard approach for most other application performance management or profiling tools. This flexibility in the design allowed for the software execution to be metered of in terms of how a business would like to manage the software via measurement (KPI) of one or more unknown activity (thread + context) based counters. It is important to note we are reporting on key performance indicators at a fine granularity - the execution context. System level reporting is only effective for health monitoring and to some degree capacity planning especially as most software gets into production with inadequate levels performance testing or software activity analysis.
With the advent of cloud computing we quickly realized that this metered resource usage had another important management perspective - costing. We already had the resource usage tracking per the software activity monitored what we needed was a way to introduce a cost model that still allowed application monitoring from both a service management perspective and cost management perspective. The support was already there - a resource meter that was cost based and derived from one or more base resource meters activated within runtime. Subsequently we introduced support for multiple cost meters allow customers to still monitor cloud computing costs whilst having one or more additional costing models for charge back schemes or operational cost management.
How does ABC help the SOA architects and developers in SLA based service monitoring and management efforts?
With the increased awareness and interest in cloud and green computing initiatives amongst many large corporations many service oriented architects are being asked to provide a mechanism that provides adequate traceability of resource consumption to software activity. Software based services execute computing activities which consume resources - so controlling activities allows one to control costs at their source.
One of the biggest hurdles in adopting ABC outside of IT is the time spent in determining which activities are being performance and how resources are consumed. With SOA based applications and services this catalog is already collected - all that needs to be done is to be able to dynamically assign costs, via resource usage, based on one of more activities performed by the service itself.
What is the future road map of JXInsight project in terms of new features and enhancements?
We plan on having two new major releases in the coming months. The first release planned for Q1 2009 will address the disconnect between system monitoring models and software monitoring models that is ever present in the current crop of application management & monitoring products. To achieve the goal of seamless switching between system monitoring and software monitoring we will be publishing a new Open API, Metrics, that will support the dynamic registration of metrics with bindings to underlying measures such as system event counters. We already have some aspects of this in the product today but it is largely static and configuration based though we do ship with mappings for most popular platforms. With this major release most of the metrics runtime will be dynamic and able to provide metrics from non-Java systems (i.e. Oracle Database) via a proxy agent.
Our second release planned for Q2 2009 will introduce a revolutionary new approach to operations dashboard design via a dynamic and extensible visualization symbolic language that will be used to render and codify system and software state and behavioral patterns for future predictive automatic problem detection.