# HG changeset patch # User Jie Kang # Date 1477515610 14400 # Node ID 00a4d3801a0050e9cb510a54e112b707644a1a96 # Parent 56cd6a23dd57a32f393cabf2a8447afdf58b8965 Update website with new look. Use bootstrap for front-end framework. Adds getting-started, contribute, download and documentation pages. Changes from: http://icedtea.classpath.org/people/jkang/testbed/rev/bc631c6009b3 Mailing list discussion: http://icedtea.classpath.org/pipermail/thermostat/2016-October/021159.html http://icedtea.classpath.org/pipermail/thermostat/2016-October/021360.html diff -r 56cd6a23dd57 -r 00a4d3801a00 content/contribute/content.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/contribute/content.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,99 @@ +
+
+
+

Contributing to Thermostat

+
+
+

+ Contributions to Thermostat are always appreciated. If you have any questions, please find us on IRC or join the mailing + list and send us an e-mail so that we can help you get started. +

+ +

+ Tasks in Thermostat are usually tracked in Trello, or through the IcedTea bugzilla. Feel free to take a look for things to + work on. +

+ +

Step 1: Build Thermostat

+

+ The first step is to get Thermostat source code on your machine and to get the required dependencies to build Thermostat. + For Fedora you can run the following in a terminal: +

+

+ $ sudo dnf install mercurial maven mongodb mongodb-server java-1.8.0-openjdk libsecret-devel make gcc gtk2-devel autoconf automake libtool +

+

+ $ hg clone http://icedtea.classpath.org/hg/thermostat +

+

+ This installs the development dependendcies and downloads the Thermostat main repository into the folder thermostat. +

+

+ Thermostat uses the Maven build system. To build, run: +

+

+ $ mvn clean integration-test +

+

Step 2: Find something to work on

+

+ Any pet peeves you have with using Thermostat would be perfect to work on. Tasks or bugs can be found on the Trello board + and in the IcedTea Bugzilla. You can also ask on the mailing list or in the IRC channel and people will have lots + of ideas to share. If you come up with something, it's best to talk about it with the community through an e-mail + or through IRC. +

+

Step 3: Complete the task

+

+ Working on the task is up to you. If you need any assistance, just ask for help. For style, please see the HACKING and README + files in the repository. Your best bet is to look at what other people have done and follow their style. There are + also a lot of resources in the Thermostat wiki targeting developers. Javadocs are also hosted online. +

+ +

Step 4: Get your work reviewed

+

+ Once you have something that works, it's time to send it for review. This is done by sending an e-mail to the mailing list + with a title following the format: "[PATCH] Commit-Message", a body explaining the patch, and the patch attached + as a '.patch'' file. For example if you wish to send a patch with commit message "Fix issue with blob in blah", then + the title would be: "[PATCH] Fix issue with blob in blah". The body of the e-mail should contain a description of + the patch including what it does and why it does so. +

+
+

+ To generate a patch file from uncommitted changes, use: +

+ $ hg diff > file-name.patch. +
+
+

+ To generate a patch from your latest commit use: +

+ $ hg export > file-name.patch +
+

+ From here, the review process starts. Committers will look over the patch and reply to your e-mail with changes. It becomes + an iterative process where you respond to the changes with a revised patch and the reviewer looks it over again, + repeating till the reviewer is satisfied with the patch. +

+

Step 5: Get your work into the tree

+

+ If you do not have commit rights, when the patch is satisfactory, the reviewer will ask for a patch file with the commit + message included. This will be committed into the tree and pushed in your stead. For committers, they can push the + changes into the tree themselves. TODO How to get commit rights +

+

Step 6: Repeat

+

+ Congratulations and thank you for your contribution! From here feel free to repeat with new work. Once you have a number + of nontrivial fixes, you may recieve nomination as an IcedTea hacker from which point you can push work yourself + after it has been reviewed. +

+
+
+
\ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 content/documentation/content.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/documentation/content.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,395 @@ +
+
+
+
+

Documentation

+
+
+
+
+

User Guide

+
+
+

+ This is the latest user guide for Thermostat 1.99.x. For older guides see the Archives +

+
+
+
+
+
+

Component Overview

+
+
+

+ Storage +

+

+ The Storage is where data gets stored. Currently, Thermostat supports Mongodb backends. +

+

+ Web Endpoint +

+

+ The Web Endpoint is an HTTP layer that runs in front of the Storage. By using the web endpoint, the Storage can be hidden + from direct connection while Agents and Clients connect with credentials through HTTP. +

+

+ Agent +

+

+ The Agent monitors JVMs that run on the machine with the same userid as the Agent, storing the data through the Web Endpoint + or directly into the Storage. The Agent also listens on a Command Channel for Client requests + such as heap dumping or full garbage collection on JVMs being monitored. Agents require a + valid Storage connection to start. +

+

+ GUI and CLI Client +

+

+ The Clients allow for displaying of data from the Storage (through the Web Endpoint or directly from Storage) as well as + performing actions on JVMs such as a heap dump or full garbage collection through the Command + Channel with the Agent. Clients require a valid Storage connection for most functions as + well as a valid Agent connection for Command Channel actions. +

+
+
+
+
+
+
+

Local Setup Tutorial

+
+
+

+ This tutorial will guide you through setting Thermostat up on a single machine. The machine will hold the Storage, accessed + through HTTP via the Web Endpoint, the Agent which will monitor all JVMs on the machine and + view the data through GUI or CLI Client. +

+

+ The quickest way is to run the local command. +

+

$ thermostat local

+

+ This starts the Agent (monitors jvms), the Web-Storage (stores data) and the GUI (displays data) all on your local machine. +

+

+ Each component can be started individually or chained in certain configurations. For example, the local command chains the + Storage, Web Endpoint (collectively referred to as Web-Storage), Agent and GUI in a single + command. +

+

+ The Storage, Web Endpoint and Agent can be started via: +

+

$ thermostat web-storage-service

+

+ The Storage and Web Endpoint can be started via: +

+

$ thermostat web-storage

+

+ The Storage can be started and stopped via: +

+

$ thermostat storage --start

+

$ thermostat storage --stop

+

+ The Agent can be started via: +

+

$ thermostat agent

+

+ The GUI Client can be started via: +

+

$ thermostat gui

+
+
+
+
+
+
+

Distributed Setup Tutorial

+
+
+

+ This tutorial will guide you through setting Thermostat up on multiple machines. One machine will hold the Storage, accessed + through HTTP via the Web Endpoint. One or more machines will hold the Agent, monitoring any + JVMs on the machine and sending data to the Storage. One machine will view the data via GUI + or CLI Client. +

+

+ Any machine that is part of the distributed setup needs Thermostat installed. All machines should have the same version of + Thermostat. +

+
+

+ Storage And Web Endpoint Setup +

+ +

+ To setup the Storage on a machine for remote access through HTTP it must be configured to bind to a proper IP address and + port of the machine and have authentication for users. +

+

+ First we setup the Mongodb backend and user authentication with: +

+

$ thermostat setup -c

+

+ This runs the CLI setup, asking you to input the username/passwords for the Mongodb backend, default client user and default + agent user. The Mongodb credentials are used by the Web Endpoint to connect to the local + Mongodb backend. The default client user credentials are used by Clients to connect to + the Web Endpoint. Likewise, the default agent user credentials are used by Agents to + connect to the Web Endpoint. These credentials should be remembered for later use. +

+

+ Next, the Web Endpoint needs to be configured to bind to the host machine's IP Address. This is done with the configuration + file THERMOSTAT_HOME/etc/db.properties + or USER_THERMOSTAT_HOME/etc/db.properties. + The settings in USER_THERMOSTAT_HOME override those in + THERMOSTAT_HOME. +

+

+ The BIND and PORT fields should be set to the machine's IP address and a free port. For a machine with ip 192.168.0.1 and + free port 27518, the db.properties file would look like: +

+
BIND=192.168.0.1
PORT=27518
+

+ Finally, the Storage and Web Endpoint can be started via: +

+

$ thermostat web-storage

+

+ The Web Endpoint can be accessed at http://192.168.0.1:27518/thermostat/storage (replace IP and Port with appropriate values + for your setup). Accessing the URL through a web browser should bring up an authentication + prompt if the Storage and Web Endpoint are setup successfully. +

+
+ +
+

+ Agent Setup +

+ +

+ To setup the Agent on a machine it must be configured to connect to the Web Endpoint via URL. +

+

+ First, prevent setup from occurring by creating the file: USER_THERMOSTAT_HOME/data/setup-complete.stamp +

+

+ Next, configure the agent to bind it's Command Channel to a remotely accessible IP address and to connect to the Web Endpoint + via URL. This is done with the file: USER_THERMOSTAT_HOME/etc/agent.properties The CONFIG_LISTEN_ADDRESS + property should be set to a remotely accessible IP address and free port and the DB_URL + property should be set to the URL that the Web Endpoint is accessible on. For a machine + with ip 192.168.0.2 and free port 12000, connecting to a Web Endpoint at 192.168.0.1:27518, + the agent.properties file would look like: +

+
CONFIG_LISTEN_ADDRESS=192.168.0.2:12000
DB_URL=http://192.168.0.1:27518/thermostat/storage
+

+ After this, set the credentials to be used in the file: USER_THERMOSTAT_HOME/etc/agent.auth + These are used when connecting to the Web Endpoint and should be the same as the default + agent user credentials in the setup for Storage and Web Endpoint. An example agent.auth + file looks like: +

+
username=agentuser
password=agentpassword
+

+ Finally, the Agent can be started via: +

+

$ thermostat agent

+
+
+

+ Client Setup +

+ +

+ To setup the Client on the machine it must be configured to connect to the Web Endpoint via URL. +

+

+ First, prevent setup from occurring by creating the file: USER_THERMOSTAT_HOME/data/setup-complete.stamp +

+

+ For the GUI Client, start via: +

+

$ thermostat gui

+

+ A connection failed prompt will appear. Click "Configure..." and a dialog will appear where you can fill in the URL to connect + to and the credentials to use. The URL is the URL of the Web Endpoint, e.g. http://192.168.0.1:27518/thermostat/storage. + The credentials are for the default client user that was setup on the Storage and Web + Endpoint machine. +

+

+ For the CLI Client, start via: +

+

$ thermostat shell

+

+ This enters the CLI terminal where you can connect to the Web Endpoint via: +

+

connect -d http://192.168.0.1:27518/thermostat/storage

+

+ Replace the argument for -d with the correct URL for your Web Endpoint. The terminal will then prompt you for credentials + to use. Once successfully connected, other CLI commands that use the Web Endpoint will + use the one specified in the connect command. +

+
+
+
+
+
+
+
+

CLI Features

+
+
+

+ The easiest way to see what features the CLI has is to run the help command. +

+

$ thermostat help

+

+ Thermostat offers CLI through invocations of thermostat, for example: +

+

$ thermostat list-vms

+

+ Thermostat also offers a Shell that can be started via: +

+

$ thermostat shell

+

+ This brings up the Shell, printing the version and the prompt and then waiting for command input. Run 'help' to list all + the commands available in the Shell. +

+
Thermostat version 1.99.12
Please see the User Guide at http://icedtea.classpath.org/wiki/Thermostat/UserGuide
Thermostat - > 
+
+
+
+
+
+
+

GUI Features

+
+
+

+ Host Machine Information +

+

    +
  • Hardware/Network Information
  • +
  • CPU/Memory Usage
  • +
  • NUMA Allocation Data
  • +

+

+ JVM Information +

+

    +
  • JVM Process Information
  • +
  • CPU/Memory Usage
  • +
  • GC, Heap, Threads, Stack Trace, IO, Compiler, Class Information
  • +
  • NUMA Allocation Data for NUMA Aware systems
  • +

+

+ JVM Actions +

+

    +
  • Kill a JVM
  • +
  • Perform a full GC
  • +
  • Create a Heap Dump and analyze it in GUI
  • +
  • Profile JVM
  • +
  • Inject Byteman rules and view results
  • +
  • Detect deadlocks
  • +

+
+
+
+
+
+
+

Terminology

+
+
+

+ This section contains description for terminology used in the User Guide. +

+ +
+

+ THERMOSTAT_HOME +

+ +

+ THERMOSTAT_HOME refers to the install location of Thermostat. This location is usually owned by root. For an RPM based installation + this is: +

+

/usr/share/thermostat

+

+ For compilations from source (tarballs, cloned repository) this is: +

+

{source-location}/distribution/target/image

+
+
+

+ USER_THERMOSTAT_HOME +

+ +

+ USER_THERMOSTAT_HOME refers to the configuration and data location of Thermostat in the user's home directory. For user "someuser" + this is: +

+

/home/someuser/.thermostat

+
+
+
+
+
+
+

+ There are also a lot of resources in the Thermostat wiki targeting developers. +

+ Wiki +
+
+
+ +
+ + + + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 content/downloads/content.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/downloads/content.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,39 @@ +
+
+
+

Downloads

+
+
+
+

Latest Stable Release

+ +
+
+

Unstable Development Release

+ +
+
+

Previous Releases

+ +
+
+
+
+
+
+
+

Requirements

+
+
+

+
    +
  • Linux (Fedora, RHEL, CentOS, etc.)
  • +
  • OpenJDK >= 1.7
  • +
  • Mongodb >= 2.2 (or 2.0 if no SSL required)
  • +
  • Servlet container (optional)
  • +
+

+
+
+
\ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 content/getting-started/content.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/getting-started/content.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,88 @@ +
+
+
+

Requirements

+
+
+

+
    +
  • Linux (Fedora, RHEL, CentOS, etc.)
  • +
  • OpenJDK >= 1.7
  • +
  • Mongodb >= 2.2 (or 2.0 if no SSL required)
  • +
  • Servlet container (optional)
  • +
+

+
+
+
+
+

Getting Started

+
+
+
+
+

Installation

+
+
+

There are a few options for getting Thermostat on your machine.

+
+

Install it on Fedora:

+

+ $ sudo dnf install thermostat +

+
+
+

Get the latest Download.

+

+ $ tar xvf thermostat-1.6.4.tar.gz +

+

+ $ cd thermostat-1.6.4 && mvn clean integration-test +

+

+ $ export PATH=$PATH:path/to/thermostat-1.6.4/distribution/target/image/bin +

+
+
+

Compile from Mercurial source:

+

+ $ sudo dnf install mercurial maven mongodb mongodb-server java-1.8.0-openjdk libsecret-devel make gcc gtk2-devel autoconf automake libtool +

+

+ $ hg clone http://icedtea.classpath.org/hg/thermostat +

+

+ $ cd thermostat && mvn clean integration-test +

+

+ $ export PATH=$PATH:path/to/thermostat/distribution/target/image/bin +

+
+
+
+ +
+
+

Running Thermostat

+
+
+

To make sure the installation is correct, first run:

+ $ thermostat --version +

It should output, depending on the version, something like:

+ Thermostat version 1.99.12 +

+ If there are errors, it is likely that the PATH has not been correctly set to include the Thermostat bin folder. See the + installation instructions for setting the path to Thermostat. +

+

Next we run locally by:

+ $ thermostat local +

+ This starts the Agent (monitors jvms), the Web-Storage (stores data) and the GUI (displays data) all on your local machine. +

+

For a distributed setup over multiple machines and more information, see the Documentation.

+
+
+ +
+
+
\ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 content/head.1.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/head.1.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,39 @@ +
+ Thermostat +
+ \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 content/head.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/head.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,40 @@ +
+ Thermostat +
+ \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 content/home/content.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/content/home/content.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,57 @@ +
+
+
+

Serviceability and Monitoring for OpenJDK

+
+
+

+ Thermostat is an instrumentation tool for the Hotspot JVM, with support for monitoring multiple JVM instances on multiple + hosts, optionally in a cloud environment. The name Thermostat is intended as a play on words: Thermostat + is to Hotspot much as IcedTea is to Java. Thermostat is free and open source software licensed under GPLv2+ + with classpath exception. +

+ +
+
+ +
+
+

Features

+
+
+

+
    +
  • Local and remote monitoring (threads, numa, heap-analysis, garbage collection, etc.)
  • +
  • Records and visualizes both high level (uptime, cpu and memory usage) and low level (HotSpot's perf) + data
  • +
  • Designed to work well against OpenJDK and IcedTea
  • +
  • Stand-alone Swing GUI client
  • +
  • Web layer for increased security
  • +
  • Command line interface client
  • +
  • Usable in production environment, with minimal overhead
  • +
+

+
+
+
+
+
+ + +
+
\ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 contribute/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contribute/index.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,38 @@ + + + + + + + + + Thermostat + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 css/style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/css/style.css Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,187 @@ +/* logo */ +/**/ +div#logo-box { + margin: 1em; + margin-top: 4em; +} + +div#logo-box img { + max-width: 25%; + height: auto; +} + +/* navbar */ +/**/ +.navbar-default { + background-color: #ffffff; + border-color: #ffffff; + border-bottom-color: rgb(0, 34, 85); + font-size: 1.2em; +} + +.navbar-default .navbar-nav > li > a { + color: rgb(0, 34, 85); +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: rgb(240,130,0); +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: rgb(240,130,0); + background-color: #ffffff; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: rgb(240,130,0); + background-color: #ffffff; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: rgb(240,130,0) +} + +.navbar-c1 { + margin-right: 0.1em; +} + +/* bs-docs-sidebar */ +/**/ +body { + position: relative; +} + +.fixed { + position: fixed; +} + +/* sidebar */ +.bs-docs-sidebar { + padding-left: 5px; + padding-right: 10px; + margin-top: 20px; + margin-bottom: 20px; +} + +/* all links */ +.bs-docs-sidebar .nav>li>a { + color: rgb(90,90,90); + border-left: 2px solid transparent; + padding: 4px 10px; + font-size: 1.1em; + font-weight: 400; +} + +/* nested links */ +.bs-docs-sidebar .nav .nav>li>a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; +} + +/* active & hover links */ +.bs-docs-sidebar .nav>.active>a, +.bs-docs-sidebar .nav>li>a:hover, +.bs-docs-sidebar .nav>li>a:focus { + color: rgb(0, 34, 85); + text-decoration: none; + background-color: transparent; + border-left-color: rgb(0, 34, 85); +} +/* all active links */ +.bs-docs-sidebar .nav>.active>a, +.bs-docs-sidebar .nav>.active:hover>a, +.bs-docs-sidebar .nav>.active:focus>a { + font-weight: 700; +} +/* nested active links */ +.bs-docs-sidebar .nav .nav>.active>a, +.bs-docs-sidebar .nav .nav>.active:hover>a, +.bs-docs-sidebar .nav .nav>.active:focus>a { + font-weight: 500; +} + +/* hide inactive nested list */ +.bs-docs-sidebar .nav ul.nav { + display: none; +} +/* show active nested list */ +.bs-docs-sidebar .nav>.active>ul.nav { + display: block; +} + +.back-to-top { + color: rgb(90,90,90); + border-left: 2px solid transparent; + margin-top: 10px; + padding: 4px 10px; + font-size: 1em; + font-weight: 400; + display: block; +} + +/* button */ +/**/ +.btn-c1 { + color: rgb(0, 34, 85); +} +.btn-c1:hover, .btn-c1:focus, .btn-c1:active, .btn-c1.active, .open>.dropdown-toggle.btn-c1 { + color: rgb(240,130,0); + background: rgb(255,255,255); +} + +.btn-xlarge { + padding: 0.5em 3em; + font-size: 1.4em; +} + +/* panel */ +/**/ +.panel-default { + border-color: rgb(255,255,255); +} + +.panel-default .panel-heading { + background: rgb(255,255,255); + border-color: rgb(255,255,255); +} + +h1.panel-title { + color: rgb(0, 34, 85); + font-size: 2.2em; +} +h2.panel-title { + color: rgb(0, 34, 85); + font-size: 2em; +} +.h3-steps { + margin-top: 1.5em; +} + +/* text */ +/**/ +h1 { + color: rgb(0, 34, 85); +} + +h2 { + color: rgb(0, 34, 85); +} + +h3 { + color: rgb(0, 34, 85); +} + +.h4c { + margin-top: 2em; + font-size: 1.5em; + color: rgb(0, 34, 85); +} + +.ac { + color: rgb(70,70,80); +} \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 documentation/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/documentation/index.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,38 @@ + + + + + + + + + Thermostat + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 downloads/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/downloads/index.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,38 @@ + + + + + + + + + Thermostat + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 fonts/glyphicons-halflings-regular.eot Binary file fonts/glyphicons-halflings-regular.eot has changed diff -r 56cd6a23dd57 -r 00a4d3801a00 fonts/glyphicons-halflings-regular.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/glyphicons-halflings-regular.svg Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 fonts/glyphicons-halflings-regular.ttf Binary file fonts/glyphicons-halflings-regular.ttf has changed diff -r 56cd6a23dd57 -r 00a4d3801a00 fonts/glyphicons-halflings-regular.woff Binary file fonts/glyphicons-halflings-regular.woff has changed diff -r 56cd6a23dd57 -r 00a4d3801a00 fonts/glyphicons-halflings-regular.woff2 Binary file fonts/glyphicons-halflings-regular.woff2 has changed diff -r 56cd6a23dd57 -r 00a4d3801a00 getting-started/index.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/getting-started/index.html Wed Oct 26 17:00:10 2016 -0400 @@ -0,0 +1,38 @@ + + + + + + + + + Thermostat + + + + + + + + + + + + + + +
+
+ +
+
+ + + + + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 index.html --- a/index.html Thu Sep 15 09:37:28 2016 -0400 +++ b/index.html Wed Oct 26 17:00:10 2016 -0400 @@ -1,136 +1,38 @@ - - - - - - Thermostat - - -
-
- -
- [Logo] Thermostat -
- -

Thermostat: Serviceability and Monitoring for OpenJDK

- - -

Thermostat is an instrumentation tool for the Hotspot JVM, -with support for monitoring multiple JVM instances on multiple hosts, -optionally in a cloud environment. The name Thermostat is intended as a play on -words: Thermostat is to Hotspot much as IcedTea is to Java.

+ + + + + + Thermostat - -
- -
Examine memory regions and their sizes
-
- -
- -
Visualize thread states
-
- -
- -
Dump, browse and search the Java heap
-
- -
- -
See garbage collections
-
- - + + + + + -
-

Features

- -
    -
  • Local and remote monitoring (threads, numa, heap-analysis, garbage collection, etc.)
  • -
  • Records and visualizes both high level (uptime, cpu and memory usage) - and low level (HotSpot's perf) data
  • -
  • Designed to work well against OpenJDK and IcedTea
  • -
  • Stand-alone Swing GUI client
  • -
  • Web layer for increased security
  • -
  • Command line interface client
  • -
  • Usable in production environment, with - minimal overhead
  • -
+ + + + + + -

Basic System Requirements

- -
    -
  • OpenJDK >= 1.7
  • -
  • Mongodb >= 2.2 (or 2.0 if no SSL required)
  • -
  • Servlet container (optional)
  • -
- - Please see the README for all the details. - - -

Downloads 

- -

- The latest stable version is Thermostat 1.6.4 (md5)(sha512). Please see the User Guide to get started and send us email if you have any trouble installing/using Thermostat — we'd be happy to help you out.

- -

Other Downloads 

+
+
-

You can also download pre-release versions to try out - newer features in advance. Please note that these may - contain significant bugs.

- - -

Historical archives of all releases are also available.

- -

Staying in Touch

- -

Want the latest Thermostat news? It's available several - ways: Feel free to subscribe to the Thermostat development - mailing -list - or join us on IRC in #thermostat on freenode.net

+
+
-

Helping Out

- -

Found a bug? Please report it in our bugzilla. Want a feature? Please email us at our mailing -list.

- -

License

+ + -

Thermostat is made available under GPLv2+ with classpath exception.

-
- - - -
-
- - + \ No newline at end of file diff -r 56cd6a23dd57 -r 00a4d3801a00 style/main-style.css --- a/style/main-style.css Thu Sep 15 09:37:28 2016 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -div#container { - position: absolute; - left: 50%; - width: 900px; - margin-left: -450px; - font-family: "Lucida Grande", Verdana, Arial, sans-serif; - font-size: 0.8em; - color: Black; -} -div#content { - -moz-border-radius: 10px; - -webkit-border-radius: 10px; - border-radius: 10px; - padding: 10px; - border: 1px solid #ccc; -} -div#logo-box { - clear: both; - margin-bottom: 30px; -} -div#logo-box img { - width: 450px; - padding-right: 2em; - position: absolute; - right: 0px; -} -div#links-box { - float: right; - padding-left: 2em; -} -div#links-box h2 { - margin: 0px; -} -div#copyright { - position: absolute; - left: 50%; - width: 400px; - margin-left: -200px; - color: #ccc; - text-align: center; -} -h2#main { - margin-top: 120px; -} -h2 { - margin-top: 1.5em; - color: rgb(0, 34, 85); -} -a { - color: rgb(0, 68, 170); -} -table { - width: 100%; - border-collapse: collapse; - text-align: center; -} -table td, table th { - border: 1px solid #ccc; - padding: 3px; -} -thead th { - background-color: #ccc; -} -body { - padding: 20px; -} - -a figure.screenshot { - display: inline-block; - text-align: center; - margin: 10px; -} - -a figure.screenshot img { - height: 200px; - width: 300px; - transition: transform 0.2s; - -moz-transition: -moz-transform 0.2s; - -webkit-transition: -webkit-transform 0.2s; - -ms-transition: -ms-transform 0.2s; - -o-transition: -o-transform 0.2s; -} -a figure.screenshot img:hover { - transform: scale(1.2); - -moz-transform: scale(1.2); - -webkit-transform: scale(1.2); - -ms-transform: scale(1.2); - -o-transform: scale(1.2); -}