For other project resources (mailing list, version control, bug reporting) please go to: landing page.
What is Thermostat?
Thermostat is an instrumentation tool for the Hotspot JVM, with support for monitoring multiple JVM instances on multiple hosts, optionally in a cloud environment.
- We want a tool that allows users of IcedTea/OpenJDK to monitor running JVMs, especially remote JVMs.
- Both high level (uptime, cpu and memory usage) and low level (including hotspot's perf data) information should be available through the tool.
- The tool should be usable in a production environment, with minimal overhead.
The name Thermostat is intended as a play on words - Thermostat is to Hotspot much as IcedTea is to Java. There are a number of ways of accessing information about the running Hotspot JVM. These include jstatd, JMX, JVMTI, and Systemtap. There is also information available from the host system that would be relevant to developers and administrators. Thermostat should provide a pluggable framework for using one or more of these information sources to monitor local or remote JVMs, in order to best allow us as well as other members of the Open Source Java community to extend the collection capability of the system.
It is worth noting that there is some overlap in terms of the information that several of these monitoring tools/APIs can provide.
Here is some discussion about what makes Thermostat stand out.
Thermostat Swing GUI
Thermostat Shell (CLI)
Thermostat users are encouraged to read our Thermostat User Guide. We are also currently working on Thermostat Eclipse integration. The goal of this effort is to bring Thermostat features into your Eclipse IDE. See our Thermostat Eclipse page for more info.
See also: Thermostat Security Considerations
Do you want to contribute to Thermostat? Here are a few pages you might find useful.
Development Environment Setup
Please select a link below for instructions as to how to set up a development environment on the given operating system:
Design And Architecture
Miscellaneous Development Related Pages
- Development style guide
- Branches and branching
- Useful Mercurial configuration
- Iterative releases and planned milestones
- Writing plugins (extensions) for thermostat
- Developing the Eclipse plug-in Client
- Thermostat and Bugzilla - tracking bugs and features
- Adding new OSGi bundles to Thermostat
- Programming for the Thermostat Command Channel
- Access Control Design Documentation
- Notes on Hotspot
- Serviceability Support In OpenJDK
- Deploy web storage in Tomcat using SSL for development/testing.
- Database schema
Thermostat is currently in an early stage of development. Please see our features page for a general overview of what's been implemented so far.
Thermostat Talks and Presentations
Some talks and presentations about thermostat are available too.
Thermostat exports a number of services:
It would be nice to be able to get some NUMA related information out of Thermostat. The linux kernel provides a variety of tools:
- getcpu system call
- get_mempolicy sytem call
- man numa_maps
Together with Hotspot NUMA support we should be able to get some information out of the system. Related docs: JEP 157; http://osdir.com/ml/java.openjdk.hotspot.devel/2008-03/msg00009.html