Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Glassbox - Automated monitoring and troubleshooting using AOP

Glassbox - Automated monitoring and troubleshooting using AOP

Glassbox is a production Java server monitoring solution built around AspectJ, released under LGPL.   The project is lead by Ron Bodkin who was among the initial group behind AspectJ. Glassbox made it's first public announcement yesterday with the release of Glassbox Automated Troubleshooter beta 2. Glassbox deployes as a war file to your appserver and then uses AspectJ load time weaving and to monitor application components and other artifacts,  in order to identify problems like excess or failed remote calls, slow queries, too many database queries, thread contention, even what request parameters caused failures. All this without changing the code or the build process.  InfoQ spoke to Ron Bodkin to get more information on this innovative use of aspect technology:
Glassbox monitors applications non-invasively by using aspects to track component interactions. We also monitor built-in JMX data, notably on a Java 5 VM we sample thread data (every 100 ms by default). As a request is processed, we summarize noteworthy events such as where time was spent and what parameters were involved in making things slow or fail. We also detect higher-level operations (such as Struts actions or Spring controllers) that we use to report on. Our AJAX Web client then provides summaries of status by operation on the machines being monitored and we generate a more detailed analysis on request. Glassbox allows monitoring clusters of servers: the Web app uses JMX Remote or direct RMI to access data from remote servers. We also provide JMX remote access to the lower-level summary statistics.
Glassbox uses Aspects to monitor common components and to capture context data such as request parameters and correlating connection URL’s with subsequent JDBC operations. They are also using aspects internally, such as their error isolation aspect that "prevents exceptions in our monitoring from escaping to cause failures in the monitored application."  
Load-time weaving has a great plug-in architecture so it’s easy to extend Glassbox analysis to monitor additional components either by configuring XML or by writing a small amount of AspectJ code, then building a jar file that you deploy in addition to the standard Glassbox monitor jar.
Glassbox is not trying to be a general purpose monitoring or reporting tool or to compete with various leading performance monitoring and correlation systems. Many other systems focus on storing large production datasets for analysis and correlation, allowing play-back of production transactions with traceability from the browser down to the database.  

Glassbox is available under LGPL, making it freely usable and embeddable as a component. The business model is to sell consulting, training and support services to those who are successfully using the technology.

Rate this Article


Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Small Clarification

    by Ron Bodkin,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I wanted to clarify how Glassbox supports monitoring. We do provide focused application monitoring and management capabilities, however we don't provide systems monitoring (i.e., we don't provide network or OS level monitoring). We seek to integrate with tools like Hyperic and Open View to contribute to overall monitoring. Likewise, we aren't a profiler.

    Likewise, we do capture transaction trace detail but our goal is to provide processed information to resolve issues instead of asking the user to sift through large amounts of data to determine what's going on. Indeed, we're planning to extend Glassbox to provide user-specific analysis by tracing requests in a session to help resolve issues that a single user is facing.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p