Analyzing Java Applications Using Thermostat (Omair Majid)

29

Transcript of Analyzing Java Applications Using Thermostat (Omair Majid)

Page 1: Analyzing Java Applications Using Thermostat (Omair Majid)
Page 2: Analyzing Java Applications Using Thermostat (Omair Majid)

Analyzing Java Applications Using Thermostat

Omair Majid

Page 3: Analyzing Java Applications Using Thermostat (Omair Majid)

Agenda

● Performance

● Thermostat

● Demos

● Plugins

● Getting Involved

Page 4: Analyzing Java Applications Using Thermostat (Omair Majid)

What Do You Care About?

Page 5: Analyzing Java Applications Using Thermostat (Omair Majid)

Performance - Host

● What information do I care about?

– OS

– CPU

– Memory

– IO

Page 6: Analyzing Java Applications Using Thermostat (Omair Majid)

Performance JVM● What JVM information do I care about?

– CPU Usage

– Memory Regions

– Garbage Collection

– Loaded Classes

– JMX Notifications

– JIT Compilation Time

– I/O Calls

– Threads

Page 7: Analyzing Java Applications Using Thermostat (Omair Majid)

JVM Actions

● What can I ask the JVM to do?

– Heap Dumps

– Invoke Garbage Collector

– Deadlock Detection

– Inject Custom Code

Page 8: Analyzing Java Applications Using Thermostat (Omair Majid)

Too many things!

Page 9: Analyzing Java Applications Using Thermostat (Omair Majid)

Thermostat

● Serviceability and Monitoring for OpenJDK

● Multiple Hosts/JVMs

● Plug-in Architecture

● Command Line & GUI

● Open Source

Page 10: Analyzing Java Applications Using Thermostat (Omair Majid)

Thermostat

$ thermostat local

$ thermostat web-storage-service

$ thermostat shell

Page 11: Analyzing Java Applications Using Thermostat (Omair Majid)

Thermostat

Page 12: Analyzing Java Applications Using Thermostat (Omair Majid)

Demo

Page 13: Analyzing Java Applications Using Thermostat (Omair Majid)

Components

Page 14: Analyzing Java Applications Using Thermostat (Omair Majid)

Components

Page 15: Analyzing Java Applications Using Thermostat (Omair Majid)

Components

Page 16: Analyzing Java Applications Using Thermostat (Omair Majid)

Components

Page 17: Analyzing Java Applications Using Thermostat (Omair Majid)

Components

Page 18: Analyzing Java Applications Using Thermostat (Omair Majid)

Components

Page 19: Analyzing Java Applications Using Thermostat (Omair Majid)

New Features

● Heap Tree Map

● Profiling

● Setup

● Tab Completion

● I/O Metrics

● New GC Details

● Security Improvements

Page 20: Analyzing Java Applications Using Thermostat (Omair Majid)

Demo

Page 21: Analyzing Java Applications Using Thermostat (Omair Majid)

Plugins

● Customize Agent and/or Client

– Collect, Record, Analyze your own metrics

– Integrate your own tools

● Most Built-in Functionality are Plugins

● Loaded using OSGi

● Documented & Stable API

http://icedtea.classpath.org/thermostat/docs/1.4/javadocs/

Page 22: Analyzing Java Applications Using Thermostat (Omair Majid)

Demo

Page 23: Analyzing Java Applications Using Thermostat (Omair Majid)

Release History

Initial ReleaseMay 2012

Version 1.0November 2013

Version 1.2December 2014

Version 1.4November 2015

Page 24: Analyzing Java Applications Using Thermostat (Omair Majid)

Development

● Adhering to standard API versioning

● API breaking changes Thermostat 2.0→

● Non-breaking changes Thermostat 1.6→

● Bug fixes Thermostat 1.4.x→

Page 25: Analyzing Java Applications Using Thermostat (Omair Majid)

Future Tasks

● Byteman Integration

● Platform API

● Integration with more tools

● Security Improvements

Page 26: Analyzing Java Applications Using Thermostat (Omair Majid)

Try Us

● Red Hat Enterprise Linux 6 and 7

– Red Hat Software Collections (1.1+, 2.0+)

yum install thermostat1-thermostat

● Fedora 21+

yum install thermostat

● Source Releases

http://icedtea.classpath.org/download/thermostat/

Page 27: Analyzing Java Applications Using Thermostat (Omair Majid)

Contributing● Potential Tasks

– New Metrics

– Porting to other architectures or operating systems

– New Clients (Web, Mobile, Eclipse?)

● Mailing List

http://icedtea.classpath.org/mailman/listinfo/thermostat

● IRC

#thermostat on freenode

Page 28: Analyzing Java Applications Using Thermostat (Omair Majid)

Don't Miss

● Monitoring application-specific behavior using Thermostat and Byteman

– Presented by Andrew Dinn, creator of Byteman

– Wednesday 11:30 a.m. to 12:30 p.m.

– Room 132

+

Page 29: Analyzing Java Applications Using Thermostat (Omair Majid)

Thank you

http://icedtea.classpath.org/thermostat