JAMon–Performance Monitoring of Java...

25
Motivation Basics Methods of Instrumentation Analysis Conclusion JAMon–Performance Monitoring of Java EE-Applications Mathias Scharl 1 Siegfried Göschl 2 1 Verisign Platform Development Vienna 2 Independent Contractor Vienna Vienna, July 17, 2007 1 / 21 JAMon–Performance Monitoring of Java EE-Applications

Transcript of JAMon–Performance Monitoring of Java...

Page 1: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Con clusion

JAMon–Performance Monitoring of Java EE-Applications

Mathias Scharl1 Siegfried Göschl2

1Verisign Platform DevelopmentVienna

2Independent ContractorVienna

Vienna, July 17, 2007

1 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 2: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Con clusion

Outline

1 Motivation

2 Basics

3 Methods of Instrumentation

4 Analysis

2 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 3: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Outline

1 Motivation

2 Basics

3 Methods of Instrumentation

4 Analysis

3 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 4: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Motivation

Possibilities to Monitor a Production System

server analysis / operating system specific approach

logfile analysis

profiler

Requirements

avoid flood of information

minimize performance impact

clear presentation of the gathered data

4 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 5: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Motivation

Possibilities to Monitor a Production System

server analysis / operating system specific approach

logfile analysis

profiler

Requirements

avoid flood of information

minimize performance impact

clear presentation of the gathered data

4 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 6: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Advantages of JAMon

Advantages of JAMon

high performance

easy to administer

simple API

flexible

aggregation of data

open source

5 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 7: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Outline

1 Motivation

2 Basics

3 Methods of Instrumentation

4 Analysis

6 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 8: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Basics

Installation - Dependencies

jamon.jar

JAMon Monitors

Labels (z.B.: "myClass.myMethod()", "numberOfActiveUsers",...)

Units (z.B.: ms., user, mb, $,...)

Ranges (z.B.: 0-10, 10-20,...)

7 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 9: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Basics

Installation - Dependencies

jamon.jar

JAMon Monitors

Labels (z.B.: "myClass.myMethod()", "numberOfActiveUsers",...)

Units (z.B.: ms., user, mb, $,...)

Ranges (z.B.: 0-10, 10-20,...)

7 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 10: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Example - Creation of a Monitor

Creation of a Time MonitorMyClass instance = ...Monitor monitor =MonitorFactory.start("MyClass.myMethod()");instance.myMethod();monitor.stop();

8 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 11: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Example - Performance Monitor

9 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 12: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Example - Custom Units

10 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 13: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Outline

1 Motivation

2 Basics

3 Methods of Instrumentation

4 Analysis

11 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 14: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Methods of Instrumentation

Methods of Instrumentation

servlet filter

manual instrumentation

dynamic proxies

call using an application framework

12 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 15: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Servlet Filter

Advantages

no additional code necessary

monitor access to ressources of a web-application

web.xml<web-app><display-name>YourApp</display-name><filter><filter-name>JAMonFilter</filter-name><filter-class>com.jamonapi.JAMonFilter</filter-class></filter><filter-mapping><filter-name>JAMonFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

13 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 16: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Manual Instrumentation

Application Areas

central dispatching point

adopt monitor to application specific needs

14 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 17: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Dynamic Proxies - Method Calls

MonProxyFactorymyObject = (MyInterface)MonProxyFactory.monitor(new MyObject());myObject.myMethod();

15 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 18: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Dynamic Proxies - Exceptions

Exceptions

total number of exceptions

number of exceptions per type

number of exceptions per method

Exception Details

ID

timestamp

stacktrace

method

16 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 19: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Dynamic Proxies - Exceptions

Exceptions

total number of exceptions

number of exceptions per type

number of exceptions per method

Exception Details

ID

timestamp

stacktrace

method

16 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 20: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Dynamic Proxies - JDBC Interfaces

JDBC ConnectionConnection monitoredConnection =MonProxyFactory.monitor(originalConnection);

returned statements and resultSets are also included in themonitor

17 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 21: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Call Using an Application Framework

AOP Interceptors

Spring Framework:org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor

Fulcrum YAAFI:org.apache.fulcrum.yaafi.interceptor.jamon.JamonInterceptorSerive

18 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 22: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Outline

1 Motivation

2 Basics

3 Methods of Instrumentation

4 Analysis

19 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 23: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Analysis

jamonadmin.jsp

filter and sort gathered data

data export -> XML, CSV, MS-Excel

de-/activation of the monitor

refresh / reset of the report

20 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 24: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Conclusion

Advantages of JAMon

tool between the classic profiler and operation system specificapproaches

numerous points of usage

clearly structured presentation of gathered data

Outlook

log4j appender

listener

21 / 21JAMon–Performance Monitoring of Java EE-Applications

Page 25: JAMon–Performance Monitoring of Java EE-Applicationspeople.apache.org/~sgoeschl/presentations/jamon-20070717.pdf2007/07/17  · JAMon–Performance Monitoring of Java EE-Applications

Motivation Basics Methods of Instrumentation Analysis Conclusion

Conclusion

Advantages of JAMon

tool between the classic profiler and operation system specificapproaches

numerous points of usage

clearly structured presentation of gathered data

Outlook

log4j appender

listener

21 / 21JAMon–Performance Monitoring of Java EE-Applications