Skip to content
Snippets Groups Projects
Commit e66faec4 authored by Lars Erik Blümke's avatar Lars Erik Blümke
Browse files

Replaced Kieker Configuration and ProjectContext by concrete constructor...

Replaced Kieker Configuration and ProjectContext by concrete constructor arguments -> simplified filter
parent 974f43af
No related branches found
No related tags found
No related merge requests found
......@@ -20,36 +20,21 @@ import java.util.Arrays;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import kieker.analysis.IProjectContext;
import kieker.analysis.display.MeterGauge;
import kieker.analysis.display.XYPlot;
import kieker.analysis.display.annotation.Display;
import kieker.analysis.plugin.annotation.Plugin;
import kieker.analysis.plugin.annotation.Property;
import kieker.analysis.plugin.filter.AbstractKiekerFilter;
import kieker.common.configuration.Configuration;
import kieker.common.record.system.CPUUtilizationRecord;
import teetime.stage.basic.AbstractFilter;
/**
* This is a filter which accepts {@link CPUUtilizationRecord} instances and provides different views to visualize them.
*
* @author Bjoern Weissenfels, Nils Christian Ehmke
* @author Bjoern Weissenfels, Nils Christian Ehmke, Lars Erik Bluemke
*
* @since 1.8
*/
@Plugin(configuration = {
@Property(name = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES, defaultValue = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_VALUE_NUMBER_OF_ENTRIES, description = "Sets the number of max plot entries per cpu"),
@Property(name = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS, defaultValue = CPUUtilizationDisplayFilter.CONFIG_PROPERTY_VALUE_DISPLAY_WARNING_INTERVALS) })
@SuppressWarnings("rawtypes")
public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
public static final String INPUT_PORT_NAME_EVENTS = "inputEvents";
public static final String CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES = "numberOfEntries";
public static final String CONFIG_PROPERTY_VALUE_NUMBER_OF_ENTRIES = "100";
public static final String CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS = "displayWarningIntervals";
public static final String CONFIG_PROPERTY_VALUE_DISPLAY_WARNING_INTERVALS = "70|90|100";
public class CPUUtilizationDisplayFilter extends AbstractFilter<CPUUtilizationRecord> {
private static final String TOTAL_UTILIZATION = "totalUtilization";
private static final String IDLE = "idle";
......@@ -64,17 +49,12 @@ public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
private final int numberOfEntries;
private final Number[] warningIntervals;
public CPUUtilizationDisplayFilter(final Configuration configuration, final IProjectContext projectContext) {
super(configuration, projectContext);
// Read the configuration
this.numberOfEntries = configuration.getIntProperty(CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES);
private final TimeUnit recordsTimeUnit;
final String[] warningIntervalsAsString = configuration.getStringArrayProperty(CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS);
this.warningIntervals = new Number[warningIntervalsAsString.length];
for (int i = 0; i < warningIntervalsAsString.length; i++) {
this.warningIntervals[i] = Long.parseLong(warningIntervalsAsString[i]);
}
public CPUUtilizationDisplayFilter(final int numberOfEntries, final Long[] warningIntervals, final TimeUnit recordsTimeUnit) {
this.numberOfEntries = numberOfEntries;
this.warningIntervals = warningIntervals;
this.recordsTimeUnit = recordsTimeUnit;
// Create the display objects
this.meterGauge = new MeterGauge();
......@@ -82,18 +62,13 @@ public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
}
@Override
protected void execute(final Object record) {
if (record instanceof CPUUtilizationRecord) {
this.updateDisplays((CPUUtilizationRecord) record);
} else {
throw new IllegalArgumentException("Argument must be of type CPUUtilizationRecord.");
}
protected void execute(final CPUUtilizationRecord record) {
this.updateDisplays(record);
}
private void updateDisplays(final CPUUtilizationRecord record) {
// Calculate the minutes and seconds of the logging timestamp of the record
final Date date = new Date(TimeUnit.MILLISECONDS.convert(record.getLoggingTimestamp(), super.recordsTimeUnitFromProjectContext));
final Date date = new Date(TimeUnit.MILLISECONDS.convert(record.getLoggingTimestamp(), recordsTimeUnit));
final String minutesAndSeconds = date.toString().substring(14, 19);
final String id = record.getHostname() + " - " + record.getCpuID();
......@@ -119,14 +94,4 @@ public class CPUUtilizationDisplayFilter extends AbstractKiekerFilter {
return this.xyplot;
}
@Override
public Configuration getCurrentConfiguration() {
final Configuration configuration = new Configuration();
configuration.setProperty(CONFIG_PROPERTY_NAME_NUMBER_OF_ENTRIES, String.valueOf(this.numberOfEntries));
configuration.setProperty(CONFIG_PROPERTY_NAME_DISPLAY_WARNING_INTERVALS, Configuration.toProperty(this.warningIntervals));
return configuration;
}
}
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