DOI: 10.5281/zenodo.226060
title: Performance Anomaly Detection In Microservice Architectures Under Continuous Change

description: Supplementary material for the master's thesis<br>
    <strong>"Performance Anomaly Detection in Microservice Architectures under Continuous Change"</strong><br>
of<br>
    <strong>Thomas F. Düllmann</strong>

<br>
The folder for the supplemental material is structured as follows:.


	<strong>abstract-de.txt</strong> (abstract in german)
	<strong>abstract-en.txt</strong> (abstract in english)
	<strong>01-MicroserviceMetamodel</strong> (Eclipse project containing the Ecore meta model and the Xtend generation template)
	<strong>02-AnomalyDetectionImplementation</strong> (Eclipse project containing the implementation of the customized RanCorr approach and the EAR approach)
	
		<strong>EARExperimentSetup</strong> (the Evaluation Setup that is run based on the input data from the experiment and the EAR implementation)
		<strong>Kieker</strong> (Kieker and the customized RanCorr approach)
	
	
	<strong>03-ExperimentTools</strong> (supplementary microservices and scripts that were used for the experiment setup. The generated services need to be placed next to these files and have to have the folder prefix "gen-")
	
		<strong>jmeter</strong> (the microservice that is used for generating load)
		<strong>jmsserver</strong> (the microservice that runs ActiveMQ to bundle the monitoring logs from the services)
		<strong>monitoringserver</strong> (the microservice that collects the monitoring data from the jmsserver microservice and stores them)
		<strong>registry</strong> (the microservice that is responsible for managing the delays that should be injected)
		<strong>copyResults.sh</strong> (simple bash script that masks the scp command to copy the monitoring data from the monitoringserver to the local file system)                  
		<strong>deployPackage.sh</strong> (bash script that uploads the docker images to defined remote systems via ssh and initiates the start of the microservices on a Kubernetes cluster using the said docker images)
		<strong>dockerinit.sh</strong> (bash script that goes into the microservice folders to compile and package them and create the corresponding Docker images (useful if running minikube for example))
		<strong>kubeinit.sh</strong> (bash script that starts the microservices on a Kubernetes cluster that is associated with the kubectl Kubernetes tool)
		<strong>kubeclean.sh</strong> (bash script that removes the microservices from a Kubernetes cluster that is associated with the kubectl Kubernetes tool)                             
	
	
	<strong>04-EvaluationData</strong>
	
		<strong>RawData </strong> (the raw data that was extracted from the experiment environment)
		
			kieker-monitoring-data (the Kieker monitoring data obtained from the experiment setup)
			<strong>anomalies.log</strong> (the log data that shows the injected real anomalies)
			<strong>events.log</strong> (log file that contains the timesstamps, the scope and the type of event injections)
			<strong>registry.log</strong> (registry microservice log showing the injections of real and change anomalies)
		
		
		<strong>Results</strong> (results for the evaluation with different thresholds)
		
			<strong>*folders*</strong> (contain the results of the anomaly detection using the threshold represented by the folder name)
			<strong>results.csv</strong> (the calulated results in terms of TP/FN/FP/FN for every approach with every threshold)
			<strong>results-calculated.csv</strong> (further metrics that were calculated based on the TP/FN/FP/FN values)
		
		
	
	
	<strong>05-EvaluationServices</strong> (the folders containing the microservices that were used for the evaluation)