monitoring java applications using thermostat...monitoring java applications using thermostat lets...

40
Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid [email protected] Senior Software Engineer @ Red Hat 2017-05-04

Upload: others

Post on 22-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Monitoring Java Applications using Thermostat

Lets find out what your application is really doing

Omair [email protected] Software Engineer @ Red Hat2017-05-04

Page 2: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Agenda

● Performance

● Thermostat

● Plugins

● New Features

● Next Steps

Page 3: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

What Matters To You?

Page 4: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Performance - Host

What information do I care about?

● OS

● CPU

● Memory

● IO

Page 5: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Performance - JVM

What JVM information do I care about?

● CPU Usage

● Memory

● Garbage Collection

● Classes

● JIT behaviour

● IO Calls

● Threads

Page 6: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Performance – Modify the JVM

What JVM information do I care about?

● Heap Dumps

● Invoke Garbage Collector

● Detect Deadlocks

● Inject custom code for on-demand instrumentation

Page 7: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Too Many Things

Page 8: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Thermostat

● Serviceability and Monitoring for OpenJDK

Page 9: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Thermostat

● Single Machine

● Multiple Hosts/JVMs

Page 10: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Thermostat

● Up and down the stack

Page 11: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Thermostat

● Historical Information

Page 12: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Thermostat

● Command Line & GUI

Page 13: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Thermostat

● Open Source

● Same license as OpenJDK

Page 14: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Usage

$ thermostat local

$ thermostat web-storage-service$ thermostat shell

Page 15: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 16: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Demo

Page 17: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 18: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 19: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 20: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 21: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 22: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior
Page 23: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Plugins

Page 24: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Plugins

● Customize Agent and/or Client

● Collect, Record, Analyze your own metrics

● Integrate your own tools

● Most built in functionality is actually plugins

● Documented API

Page 25: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

New Features

Page 26: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

New Features

● Byteman UI

● “Monitoring Application-Specific Behavior Using Thermostat And Byteman”

● https://youtu.be/teL7qnulUTM

Page 27: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

New Features

● Stack Trace Profiler

Page 28: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

New Features

● Shenandoah

Page 29: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

New Features

● Automatically Identifying (Some) Problems

Page 30: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

New Features

● Windows port in progress

Page 31: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Next Steps

Page 32: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Release History

Initial ReleaseMay 2012

Version 1.0November 2013

Version 1.2December 2014

Version 1.4November 2015

Version 1.6July 2016

Page 33: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Development

● Adhering to standard API versioning

● API breaking changes → Thermostat 2.0 / NG

● Non-breaking changes/bugfixes → Thermostat 1.6

Page 34: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Future Tasks

● Integration with more tools

● More automated learning/detection

Page 35: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Cloud/Microservices

Page 36: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Try It!

Red Hat Enterprise Linux 6 and 7

Red Hat Software Collections

yum install thermostat16-thermostat

Fedora 21+

yum install thermostat

Sources

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

Page 37: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Contributing

Starting point: http://icedtea.classpath.org/thermostat

● Mailing lists

● IRC

● Bug tracker

● Features

● Report Bugs

● Code

Page 38: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

Summary

● Why Thermostat

● Thermostat: What & How

● Plugins

● New Features

● Next Steps

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

Page 39: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews

Page 40: Monitoring Java Applications using Thermostat...Monitoring Java Applications using Thermostat Lets find out what your application is really doing Omair Majid omajid@redhat.com Senior