From IcedTea

Jump to: navigation, search

Go to the Home Page

This wiki is mainly for Thermostat developers and organized as such. If you are not a Thermostat developer, please start at the home page instead. If you are a new user, please see the User Guide on how to get started. Developer Resources


1 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.

Please see the home page and the User Guide on how to get, install and use Thermostat.

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.

2 Why Thermostat?

Here is some discussion about what makes Thermostat stand out.

3 Screenshots

3.1 Thermostat Swing GUI

3.2 Thermostat Shell (CLI)

4 Using Thermostat

Thermostat users are encouraged to read our Thermostat User Guide.

See also: Thermostat Security Considerations

5 Thermostat Development

Do you want to contribute to Thermostat? Here are a few pages you might find useful.

For a quick-start guide to getting Thermostat setup and running see: Quick-start Guide

5.1 Development Environment Setup

Please select a link below for instructions as to how to set up a development environment on the given operating system:

5.2 Design And Architecture

5.3 Miscellaneous Development Related Pages

6 Thermostat Features

Thermostat is currently past our 1.4.4 release. Please see our features page for a general overview of what's been implemented so far.

7 Thermostat Talks and Presentations

Some talks and presentations about thermostat are available too.

8 OSGi Services

Thermostat exports a number of services:


  • com.redhat.thermostat.client.osgi.service.VMContextAction
  • com.redhat.thermostat.client.osgi.service.ApplicationService
  • com.redhat.thermostat.client.osgi.service.ContextAction
  • com.redhat.thermostat.client.osgi.service.VmInformationService
  • com.redhat.thermostat.service.process.UNIXProcessHandler


It would be nice to be able to get some NUMA related information out of Thermostat. The linux kernel provides a variety of tools:

  • numactl
  • numastat
  • 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;

Personal tools