diff --git a/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java b/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java index 7db39869068e5fe98265c9022adcaced633f6083..bc1bf3d73ecc8e82ec42296d52be17c1ae55e7f0 100644 --- a/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java +++ b/src/main/java/kieker/analysis/plugin/filter/sink/CPUUtilizationDisplayFilter.java @@ -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; - } - }