Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
SMILA/Project Concepts/Concept for a Performance Measurement Framework
< SMILA | Project Concepts
                  
                  
                  
                  Contents
Goals of the Performance Measurement Framework:
Framework for:
-   Measurements of Application Metrics like
- Response time
 - Throughput
 - Resource Utilization
 - Workload
 
 - A totally distributed application
 - A heterogeneous Components (Hardware / Operation System)
 - Applications are based on Java
 - Profiling (Monitoring on instruction level) is not important
 
Survey
The Concept for the Framework can be divided into two components:
- Measurement Interface/API - Component: Measurements are taken from application\-specific results. Therefore the Applications have to measure the metric itself. The results can be delivered to the Measurement interface/API which can be used from the Data Collection Component.
 - Data Collection Component: The Data Collection Component can contact the Measurement Interface/API that is used in parts of the distributed application to collect the results of the measurement. Furthermore this component can analyze/convert the data and can create statistics or graphs.
 
Survey of techniques for the Measurement Interface/API:
-  Logging
-  Every Part of the distributed Application can use logging to save results of the measurement. 
- Advantages: Simple approach
 - Disadvantages: Synchronization of Measurement entries
 -  Unsolved: the Collection of the logging files
- Can be solved with an implementation over JMS /ActiveMQ
 
 
 
 -  Every Part of the distributed Application can use logging to save results of the measurement. 
 -  JMX (Java Management Extensions)
- Framework for Management and Monitoring of Java\-Applications
 -  Advantages:
-  Simple publication of application properties (can be measurement results) 
- MBeans ( like Pojo\-Objects with getter/setter)
 - Notifications possible
 
 
 -  Simple publication of application properties (can be measurement results) 
 -  Disadvantages:
- MBeans Properties has to be polled (probably, otherwise use of notifications)
 
 
 -  ARM (Application Response Measurement)
- Open standard ([[1]])
 - "for monitoring and diagnosing performance bottlenecks within complex enterprise applications that use loosely\-coupled designs or service\-oriented architectures"
 - Standard contains the API for C and java that allows timing information associated with each step in processing a transaction to be logged to a remote server for later analysis
 - Contains Functions for Performance Counters, Monitoring of Transactions, etc.
 -  Implementations:
-  Open Source: open\-arm.sourceforge.net
- Alpha/Beta' status (version 0.009)
 -  Contains for the distribution of results:
- Logging
 - SNMP
 
 
 -  ARM\-SDK4 (distributed from the standardization group)
- Uses the C Lib and JNI for the java API
 - Measurement functions are implement
 -  Implementation of the Distribution of measurement results
- ONLY: logging
 
 
 -  Commercial: tang\-it.com
- Commercial!
 - E.g.: Supports the collection/distribution of measurement data to a database server
 - Advantages: best solution for the Performance Measurement Framework
 - Disadvantages: there is no (open source, non-commercial) implementation that supports distributed applications and distributed measurements
 
 
 -  Open Source: open\-arm.sourceforge.net
 
 
nSurvey of techniques for the Data Collection Component:
Most Techniques are developed for the monitoring of J2EE\-Applications/Servers and for profiling Java\-Applications
- JManage (jmanage.org): Client for JMX: runs in a Web server:
 
Can be used to access applications that use JMX Can create graphs from the returned data
-  Commercial Tools:
- DynaTrace
 - Intrascope
 
 
- Eclipse Test & Performance Tools Platform Project ([[2] www.eclipse.org/tptp]) :
 - TPTP provides powerful frameworks and services for an open platform upon which developers build unique test and performance tools
 
- TPTP can be used for profiling of Java\-Applications and JMX\-Application can be managed:
 
-  Advantages:
- Logging concept : TPTP supports CBE (Common Base Events). It can read logs and can convert them to CBE. CBE can be used for statistical analyze of the data
 
 
-  Open Platform: The TPTP\- Framework can be extended
-  Agent Controller specific:
-  E.g. Eclipse Help:
- TPTP Data Collection Framework / How to write a TPTP Data Collection Agent
 - Extending the monitoring, profiling, and testing functions
 
 
 -  E.g. Eclipse Help:
 
 -  Agent Controller specific:
 
-  Open Platform: The TPTP\- Framework can be extended
 
-  Problems/Disadvantages:
- JMX can used for managing JMX\-Applications, but JMX information cannot be used to creating graphs/statistical
 - For the "Statistical" Launch Configuration there is no Agent (Agent is a collecting service that can be started in the Agent Controller) in the Agent Controller that can use ARM or JMX - Clients (JMX only for specific JBoss/Jonas, no JSR\-160').
 - And only one agent can be selected in eclipse TPTP( but: according to the documentation it should be possible to use more agents [[3]] )
 - Therefore for the use of TPTP for this Framework there have to be some further development ( a special agent that can address JMX or ARM and simultaneously the windows PerfMon functionality)
 
 
- Eclipse Cosmos:
 
The COSMOS (Community\-driven Systems Management in Open Source) project aims to provide an extensible, standards\-based framework upon which software developers can create specialized, differentiated and inter\-operable offerings of tools for system management.
- Review: Cosmos is no option. Release V1.0 is Sommer 2008
 
Review:
- the non-commercial arm - software allows no distributed application (only the logging facility is implemented, with open-arm snmp, probably this is a option!?)
 - JMX is used by many applications to allow the management of (runtime) properties, but it isnt often used for measurement functionality (but it can be used for it)
 
Further Steps:
-  Open Issue: How can JMX/ARM integrated into the TPTP-Framework to use the "statisticals" launch configuration (for Graphs)?
- Own Implementation of an agent for the agent controller (work?)
 - Can this agent support JMX/ARM and Windows Performace Information?
 
 - Open Issue: Alternatives?