Archived PushToTest site

Java Enterprise Application Monitoring with Glassbox

Glassbox is a utility that monitors Java enterprise applications (WAR or EAR.) Glassbox identifies thread contention, excess memory usage, and slow database connections. TestMaker integrates with Glassbox to correlate monitored performance problems to TestMaker's load test operations. Used in combination, TestMaker and Glassbox deliver root cause analysis and mitigation of performance bottlenecks in Java enterprise applications.

Glassbox locates the reasons for an enterprise application failure, performance bottleneck, or functional issue without requiring changes or instrumentation to your application. Glassbox uses Aspect-Oriented Programming (AOP) and Java Management technology. Glassbox is safe to use in production environments. Glassbox uses less than 1% of your server's CPU bandwith. Glassbox supports Apache Tomcat, IBM WebSphere, Oracle BEA WebLogic, RedHat JBoss, and Jetty.

You may still need network and application "sniffers," test harnesses and probes, but thankfully these can now be focused on exotic problems and their complexity avoided when dealing with day-to-day application performance issues.

The Glassbox Project maintains Glassbox. PushToTest integrates and ships Glassbox in TestMaker Enterprise Edition. PushToTest Global Services provides professional support, training, and consulting for Glassbox.

Learning About Glassbox and TestMaker

We recommend the following learning resources.


PushToTest TestMaker is a distributed test and monitor environment. As a load and performance test operates Glassbox obseves performance metrics of a Java enterprise application, including memory use, thread contention, database connections, and object operation. PushToTest Monitor (PTTMonitor) communicates with Glassbox over Java management (JMX) protocols. TestMaker gathers Glassbox data and correlates Glassbox findings into TestMaker reports.


For example, PushToTest operates a load and performance test on one or more TestNodes. A TestNode is a Web service that receives and operates a test. The TestNode is in your QA lab, datacenter, cloud computing environment, or both. Glassbox installs on a Java application server and uses Aspect Oriented Technology to observe enterprise applications. The TestMaker monitor system (PTTMonitor) communicates over JMX protocols to Glassbox as the test operates. The TestMaker Results Analysis Engine correlates the Glassbox observations to the load test results for root cause analysis and mitigation.

Glassbox provides a Troubleshooter to view the live monitored data and performance alerts for your application. The following shows the Glassbox Troubleshooter interface.


Glassbox Troubleshooter highlights problems with your application achieving your criteria for acceptable performance criteria. For example, Glassbox identifies slow object performance by setting a threashold in milliseconds. Use the Glassbox configuration to set the criteria.

With the Glassbox configuration set Glassbox automatically monitors performance. TestMaker accumulates Glassbox reports of performance issues and produces reports to highlight performance issues as a load and performance test operates. Identify a Glassbox Performance Alerts chart using the following Results Analysis Chart Settings in TestMaker.


At the end of a TestMaker load and performance test the Results Analysis engine displays a chart showing the timing during the test and frequency that Glassbox observedperformance outside of the defined criteria.


PushToTest TestMaker includes an example TestScenario to demonstrate Glassbox in TestMaker_home/example_agents/GlassboxTutorial.

PushToTest designed TestMaker's Results Analysis Engine to provide drill-down functions on any of the Glassbox performance observations. Contact PushToTest Global Services to learn about additional charting and analysis functions.

Glassbox provides a Java management (JMX) interface to the Troubleshooter's extended performance monitor data. Access this data through the Java Management Console (JConsole). JConsole comes with the Java Development Kit (JDK.) With the JDK installed run the JConsol in a shell or terminal window by typing the following:

jconsole service:jmx:rmi:///jndi/rmi://localhost:7232/GlassboxTroubleshooter

JConsole connects to the Glassbox Troubleshooter and displays a graphical interface shown in the following.


Glassbox Features and Benefits

    • 100% FREE and Open Source.
    • Glassbox is a web app, drop it in and point your browser to our UI
    • Anyone can diagnose a problem with one click, without knowing the code
    • Concise English output ends miscommunication and finger-pointing
    • Measures SLA violations, so you know which problems matter
    • Low overhead won't slow down production applications
    • Plug and play. Up in minutes with no source or build changes needed.
    • Adapts to your code automatically, no need to 'train the app'
    • Monitor or Troubleshoot multiple agents simultaneously with the same client
  • Key Features and Benefits:
  • Release Candidate New and Improved:
    • 9+ months of improvements from the Beta
    • Improved installation, more platforms, improved automation
    • More Monitors, Glassbox understands more frameworks and finds more issues
    • Improved APIs for integration
    • And last but not least... More tested and more bug fixes
  • Pinpoints Faults Out of the Box:
    • Slow database query
    • Database connection failure
    • Broken database query
    • Failing Java
    • Slow Java
    • Bottleneck or thread contention
    • Slow or Failing web service
    • Inneficient Java code
    • Slow or Failing remote procedure call
    • Faulty HTTP
    • Java Mail Issues
    • Broken FTP
  • Conclusive diagnoses, not piles of logs and reports
  • Simple web-based list/detail UI paradigm
  • Safe, only standards based monitoring, no custom byte-code manipulation
  • Technology Supported:
    • Platforms: Windows/Linux/Solaris
    • Java6 Versions: From Sun, BEA JRockit and IBM
    • Java5 Versions: Java 1.5 JVMs from Sun, BEA JRockit and IBM
    • Other Java Versions: 1.4.x JVMs from Sun, BEA jRockit and IBM
    • Databases: Oracle / MySQL / IBM DB2 / SQL Server
    • Application Servers: Apache Tomcat, WebLogic, JBoss, Oracle OC4j, Websphere, Resin
    • Please check back, or contact us on the forums about support for other platforms. We are actively adding support for other technology platforms.
  • Robust, flexible, easily adaptable: uses standards-based AspectJ and JMX infrastructure
  • No licensing and no rules about where you can or cannot run Glassbox 2.0

Next Steps

PushToTest and Glassbox make the following resources available:

Ron Bodkin's presentation to the Dallas Java User Group (2.2 Mbyte, Adobe Acrobat format)

Screencast of Rod Bodkin introducing Glassbox (Streaming Flash video)

PushToTest Support Forum for Glassbox

Glassbox Web Site

Glassbox User Guide (Adopt Acrobat PDF format)

Take a Glassbox Training class offered by PushToTest Global Services

PushToTest TestMaker includes an example TestScenario to demonstrate Glassbox in TestMaker_home/example_agents/GlassboxTutorial.

Introduction to Glassbox and TestMaker screencast

Glassbox Concepts, Configuration, and Extended Options screencast

Document Actions