Design Specification: Performance Monitor
|Date||Author||Version Description & Notes|
We currently have two profilers, the PerformanceProfiler and the QueryMonitor. The PerformanceProfiler provides detailed information, but is not very useful in a server environment. The QueryMonitor is useful in a server environment, but does not provide detailed information. EclipseLink already contains an extensive profiling and monitoring API that was previously developed under TopLink for Oracle DMS, but does not provide a profiler implementation that makes use of these APIs.
The PerformanceMonitor's goal is to somewhat unify the PerformanceProfiler and QueryMonitor to provide detailed profiling and monitoring information in a mutli-threaded server environment.
Profiling is mainly concerned with timing information (time spent in cache, querying), monitoring is mainly concerned with state information (cache size, number of transactions).
Make use of the existing SessionProfiler API that was designed for DMS. Support multi-threading. Support a server environment. Be configurable without any Java code.
Output of profiler should be analyzed under SRG test run, performance tests, and in JEE performance benchmark runs.
- ProfilerType - PerformanceMonitor
- <property name="eclipselink.profiler" value="PerformanceMonitor"/>
Should be documented under performance section of JPA user guide.
|Issue #||Owner||Description / Notes|
|1||Are there additional metrics to profile?|
|Issue #||Description / Notes||Decision|
- Additional metrics.
- JMX support.