diagnoseIT/diagnoseIT.ppinject
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
This repository contains the implementation and evaluation setup of the performance problem injector presented in the following publication: Philipp Keck, André van Hoorn, Dušan Okanović, Teerat Pitakrat, and Thomas F. Düllmann: Antipattern-Based Problem Injection for Assessing Performance and Reliability Evaluation Techniques. In Proceedings of the 8th International Workshop on Software Aging and Rejuvenation (WoSAR 2016), co-located with 27th International Symposium on Software Reliability Engineering (ISSRE 2016). IEEE, October, 2016, Ottawa, Canada. The publication is available via http://diagnoseit.github.io/publications.html The directory contents are based on the files corresponding to the example presented in Appendix B (Java EE Servlet Container Example) of the Kieker user guide (http://kieker-monitoring.net/documentation/). See the user guide (kieker-<version>_userguide.pdf) for details. The following changes have been made to the Kieker example: - The namespace de.uni_stuttgart.iste.ppi has been added and contains the code for the Performance Problem Injection. Note that this code would typically reside in a separate library and is only included in the same project to simplify the build process. - The src/main/resources/META-INF/aop.xml instantiates TheRampAspect as an example. The code is in the "jpetstore-6-mybatis-jpetstore-6.0.1" folder. The folder "jetty" contains the server. Build and deploy the example with "ant build-all" on the command line. Start the server with " java -jar start.jar" in the "jetty" folder. A "TestPlan.jmx" is provided to be used with JMeter. A JMeter version is included in "apache-jmeter-2.9/"- When run against the server, it will store its results in the working directory in a file called "results-default.jtl". The graphs shown in the paper have been created by filtering for rows with "label" == "View Product" and visualizing the "elapsed" values (duration of the respective request) over the "allThreads" value (number of concurrently active threads).