Skip to content
Snippets Groups Projects
Commit c04473f1 authored by Jürgen Walter's avatar Jürgen Walter
Browse files

added programatic access to librede results

parent 523b564c
No related branches found
No related tags found
No related merge requests found
package tools.descartes.pmx.core.filter.resourcedemands;
import java.util.HashMap;
import java.util.Map;
import tools.descartes.librede.export.IExporter;
import tools.descartes.librede.registry.Component;
import tools.descartes.librede.repository.TimeSeries;
@Component(displayName = "Object Export")
public class ObjectExporter implements IExporter {
private static Map<String, TimeSeries> map = new HashMap<String, TimeSeries>();
@Override
public void writeResults(String approach, int fold, TimeSeries estimates)
throws Exception {
map.put(approach+fold, estimates);
}
public static TimeSeries getEstimates(String approach, int fold){
return map.get(approach+fold);
}
}
......@@ -4,7 +4,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ArrayBlockingQueue;
import kieker.analysis.IProjectContext;
import kieker.analysis.plugin.annotation.InputPort;
......@@ -20,7 +19,6 @@ import kieker.tools.traceAnalysis.filter.AbstractTraceAnalysisFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.BasicConfigurator;
import tools.descartes.librede.Librede;
import tools.descartes.librede.ResultTable;
......@@ -41,10 +39,12 @@ import tools.descartes.librede.configuration.TraceConfiguration;
import tools.descartes.librede.configuration.TraceToEntityMapping;
import tools.descartes.librede.configuration.ValidationSpecification;
import tools.descartes.librede.configuration.WorkloadDescription;
import tools.descartes.librede.export.IExporter;
import tools.descartes.librede.export.csv.CsvExporter;
import tools.descartes.librede.linalg.LinAlg;
import tools.descartes.librede.linalg.Matrix;
import tools.descartes.librede.linalg.Vector;
import tools.descartes.librede.registry.Registry;
import tools.descartes.librede.repository.IMonitoringRepository;
import tools.descartes.librede.repository.MemoryObservationRepository;
import tools.descartes.librede.repository.StandardMetric;
......@@ -173,7 +173,6 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
list.add(traceConfiguration);
}
LibredeConfiguration conf = createLibredeConf(repository, outputPath);
conf.getInput().getObservations().addAll(list);
Range range = RepositoryUtil.deduceMaximumInterval(repository,
......@@ -181,9 +180,7 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
conf.getEstimation().setStartTimestamp((long) ((range.getEnd() - 10.0)*1000.0)); //-10
conf.getEstimation().setEndTimestamp((long) ((range.getEnd() + 10.0)*1000.0)); //+10
repository.setCurrentTime((range.getEnd() + 10.0));
//log.info("Range " + conf.getEstimation().getStartTimestamp() + " --> " + conf.getEstimation().getEndTimestamp());
for(Service service : conf.getWorkloadDescription().getServices()){
TimeSeries x = repository.getData(StandardMetric.RESPONSE_TIME, service);
x.setStartTime(conf.getEstimation().getStartTimestamp() / 1000.0);
......@@ -194,6 +191,11 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
runLibReDe(repository, conf);
int fold = 0;
log.info("Accessing LibReDe results "+ ObjectExporter.getEstimates("ServiceDemandLawApproach", fold));
// ServiceDemandLawApproach.class.getName(), fold));
}
}
......@@ -220,15 +222,22 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
OutputSpecification outputSpecification = ConfigurationFactory.eINSTANCE
.createOutputSpecification();
ExporterConfiguration exporterConfiguration = ConfigurationFactory.eINSTANCE
ExporterConfiguration csvExporterConfiguration = ConfigurationFactory.eINSTANCE
.createExporterConfiguration();
exporterConfiguration.setType(CsvExporter.class.getCanonicalName());
exporterConfiguration.setName(CsvExporter.class.getName());
csvExporterConfiguration.setType(CsvExporter.class.getCanonicalName());
csvExporterConfiguration.setName(CsvExporter.class.getName());
Parameter parameter = ConfigurationFactory.eINSTANCE.createParameter();
parameter.setName("OutputDirectory");
parameter.setValue(resultPath);
exporterConfiguration.getParameters().add(parameter);
outputSpecification.getExporters().add(exporterConfiguration);
csvExporterConfiguration.getParameters().add(parameter);
outputSpecification.getExporters().add(csvExporterConfiguration);
Registry.INSTANCE.registerImplementationType(IExporter.class, ObjectExporter.class);
ExporterConfiguration objecExporterConfiguration = ConfigurationFactory.eINSTANCE.createExporterConfiguration();
objecExporterConfiguration.setType(ObjectExporter.class.getCanonicalName());
objecExporterConfiguration.setName(ObjectExporter.class.getName());
outputSpecification.getExporters().add(objecExporterConfiguration);
conf.setOutput(outputSpecification);
return conf;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment