Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
Motivation Basics Methods of Instrumentation Analysis Conclusion
Example - Performance Monitor
9 / 21JAMon–Performance Monitoring of Java EE-Applications
Motivation Basics Methods of Instrumentation Analysis Conclusion
Example - Custom Units
10 / 21JAMon–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
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
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
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
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
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
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
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
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
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
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
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
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