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

BasicConfigurator + output directories

parent 968ca1aa
No related branches found
No related tags found
No related merge requests found
......@@ -3,24 +3,19 @@ package tools.descartes.pmx.core;
import java.io.File;
import java.io.IOException;
import kieker.analysis.AnalysisController;
import kieker.analysis.IAnalysisController;
import kieker.analysis.exception.AnalysisConfigurationException;
import kieker.analysis.plugin.AbstractPlugin;
import kieker.analysis.plugin.reader.filesystem.FSReader;
import kieker.common.configuration.Configuration;
import kieker.tools.traceAnalysis.filter.AbstractTraceAnalysisFilter;
import kieker.tools.traceAnalysis.filter.flow.TraceEventRecords2ExecutionAndMessageTraceFilter;
import kieker.tools.traceAnalysis.filter.sessionReconstruction.SessionReconstructionFilter;
import kieker.tools.traceAnalysis.filter.traceReconstruction.TraceReconstructionFilter;
import kieker.tools.traceAnalysis.systemModel.repository.SystemModelRepository;
import net.sf.markov4jmeter.behaviormodelextractor.BehaviorModelExtractor;
import net.sf.markov4jmeter.behaviormodelextractor.extraction.transformation.RBMToRBMUnifier;
import net.sf.markov4jmeter.m4jdslmodelgenerator.CommandLineArgumentsHandler;
import net.sf.markov4jmeter.m4jdslmodelgenerator.M4jdslModelGenerator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.BasicConfigurator;
import tools.descartes.pmx.core.builder.ModelBuilder;
import tools.descartes.pmx.core.builder.pcm.PCMBuilder;
......@@ -30,7 +25,6 @@ import tools.descartes.pmx.core.filter.controlflow.ControlFlowFilterAppender;
import tools.descartes.pmx.core.filter.resourcedemands.ResourceDemandFilter;
import tools.descartes.pmx.core.filter.system.SystemFilterAppender;
import tools.descartes.pmx.core.filter.usage.Session2UsageProfileWriterPlugin;
import tools.descartes.pmx.core.util.filter.ClassAndInterfaceFilterPlugin;
import tools.descartes.pmx.core.util.filter.CpuFilterPlugin;
import tools.descartes.pmx.core.util.filter.ExecutionTimeFilterPlugin;
import tools.descartes.pmx.core.util.filter.MemSwapFilterPlugin;
......@@ -60,6 +54,8 @@ public class PMXController {
public void run() throws AnalysisConfigurationException {
log.info("initializing...");
BasicConfigurator.configure();
try {
init();
} catch (IllegalStateException e) {
......@@ -92,7 +88,12 @@ public class PMXController {
FilterPortTuple reader_fpt = new FilterPortTuple(reader, port);
// Create and register our own consumer
ResourceDemandFilter resourceDemandFilter = new ResourceDemandFilter(new Configuration(), analysisController);
final Configuration resourceDemandFilterConfiguration = new Configuration();
resourceDemandFilterConfiguration.setProperty(ResourceDemandFilter.CONFIG_PROPERTY_NAME_OUTPUT_FN, resultPath+ "/resourcedemands/");
(new File(resultPath+ "/resourcedemands/")).mkdir();
ResourceDemandFilter resourceDemandFilter = new ResourceDemandFilter(resourceDemandFilterConfiguration, analysisController);
// final ClassAndInterfaceFilterPlugin classAndInterfaceFilter = new ClassAndInterfaceFilterPlugin(new Configuration(), analysisController);
final Configuration exTimeFilterConfig = new Configuration();
......
......@@ -34,6 +34,7 @@ import tools.descartes.librede.configuration.ExporterConfiguration;
import tools.descartes.librede.configuration.InputSpecification;
import tools.descartes.librede.configuration.LibredeConfiguration;
import tools.descartes.librede.configuration.OutputSpecification;
import tools.descartes.librede.configuration.Parameter;
import tools.descartes.librede.configuration.Resource;
import tools.descartes.librede.configuration.Service;
import tools.descartes.librede.configuration.TraceConfiguration;
......@@ -62,11 +63,25 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
public static final String OUTPUT_PORT_NAME = "forwardingOpExRecord";
public static final String OUTPUT_PORT_NAME_OTHER = "untouchedIMonitoringRecord";
/**
* Name of the configuration property to pass the directory of the
* output.
*/
public static final String CONFIG_PROPERTY_NAME_OUTPUT_FN = "outputDirectory";
/**
* By default, writes output files to this file in the working
* directory.
*/
private final String outputPath;
private static Map<String, TimeSeries> timeSeriesMap;
public ResourceDemandFilter(final Configuration configuration,
final IProjectContext projectContext) {
super(configuration, projectContext);
this.outputPath = configuration
.getPathProperty(CONFIG_PROPERTY_NAME_OUTPUT_FN);
timeSeriesMap = new HashMap<String, TimeSeries>();
}
......@@ -131,7 +146,6 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
boolean error = errorBeforeTermination;
if (!error) {
BasicConfigurator.configure();
Librede.init();
WorkloadDescription workload = ConfigurationFactory.eINSTANCE
......@@ -160,7 +174,7 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
}
LibredeConfiguration conf = createLibredeConf(repository);
LibredeConfiguration conf = createLibredeConf(repository, outputPath);
conf.getInput().getObservations().addAll(list);
Range range = RepositoryUtil.deduceMaximumInterval(repository,
conf);
......@@ -168,8 +182,8 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
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());
//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);
......@@ -185,7 +199,7 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
}
private LibredeConfiguration createLibredeConf(
IMonitoringRepository repository) {
IMonitoringRepository repository, String resultPath) {
LibredeConfiguration conf = ConfigurationFactory.eINSTANCE
.createLibredeConfiguration();
conf.setWorkloadDescription(repository.getWorkload());
......@@ -210,6 +224,10 @@ public class ResourceDemandFilter extends AbstractTraceAnalysisFilter {
.createExporterConfiguration();
exporterConfiguration.setType(CsvExporter.class.getCanonicalName());
exporterConfiguration.setName(CsvExporter.class.getName());
Parameter parameter = ConfigurationFactory.eINSTANCE.createParameter();
parameter.setName("OutputDirectory");
parameter.setValue(resultPath);
exporterConfiguration.getParameters().add(parameter);
outputSpecification.getExporters().add(exporterConfiguration);
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