@Override protected List<IMonitoringRecord> readEvents() throws AnalysisConfigurationException { return this.sinkFilter.getList(); } }
final ListReader<Object> reader = new ListReader<Object>(new Configuration(), controller); final TypeFilter typeFilter = new TypeFilter(typeFilterConfiguration, controller); final ListCollectionFilter<Object> sinkPluginValidElements = new ListCollectionFilter<Object>(new Configuration(), controller); final ListCollectionFilter<Object> sinkPluginInvalidElements = new ListCollectionFilter<Object>(new Configuration(), controller); Assert.assertTrue("Type filter filtered matching types", sinkPluginValidElements.getList().containsAll(Arrays.asList(MATCHING_OBJECTS))); Assert.assertTrue("Type filter did not filter mismatching types", sinkPluginInvalidElements.getList().containsAll(Arrays.asList(MISMATCHING_OBJECTS))); Assert.assertEquals("Type filter sent too much to the match output port", MATCHING_OBJECTS.length, sinkPluginValidElements.getList().size()); Assert.assertEquals("Type filter sent too much to the mismatch output port.", MISMATCHING_OBJECTS.length, sinkPluginInvalidElements.getList().size());
@Override protected MonitoringController createController(final int numRecordsWritten) throws IllegalStateException, AnalysisConfigurationException, InterruptedException { final AnalysisController analysisController = new AnalysisController(); final Configuration config = ConfigurationFactory.createDefaultConfiguration(); config.setProperty(ConfigurationKeys.WRITER_CLASSNAME, JmsWriter.class.getName()); config.setProperty(JmsWriter.CONFIG_CONTEXTFACTORYTYPE, FakeInitialContextFactory.class.getName()); config.setProperty(JmsWriter.CONFIG_FACTORYLOOKUPNAME, "ConnectionFactory"); final MonitoringController ctrl = MonitoringController.createInstance(config); Thread.sleep(1000); final Configuration jmsReaderConfig = new Configuration(); jmsReaderConfig.setProperty(JmsReader.CONFIG_PROPERTY_NAME_FACTORYLOOKUP, FakeInitialContextFactory.class.getName()); final JmsReader jmsReader = new JmsReader(jmsReaderConfig, analysisController); this.sinkFilter = new ListCollectionFilter<IMonitoringRecord>(new Configuration(), analysisController); analysisController.connect(jmsReader, JmsReader.OUTPUT_PORT_NAME_RECORDS, this.sinkFilter, ListCollectionFilter.INPUT_PORT_NAME); final AnalysisControllerThread analysisThread = new AnalysisControllerThread(analysisController); analysisThread.start(); Thread.sleep(1000); return ctrl; }
final CurrentTimeEventGenerationFilter filter = new CurrentTimeEventGenerationFilter(filterConfiguration, controller); final ListCollectionFilter<TimestampRecord> sinkRecord = new ListCollectionFilter<TimestampRecord>(new Configuration(), controller); final ListCollectionFilter<Long> sinkLong = new ListCollectionFilter<Long>(new Configuration(), controller); final List<TimestampRecord> listRecords = sinkRecord.getList(); final List<Long> listLongs = sinkLong.getList(); final long[] receivedTimestampsArr = new long[listRecords.size()]; final long[] receivedRawTimestampsArr = new long[listLongs.size()]; if (expectedOutputTimerEvents.length != sinkRecord.size()) { Assert.fail("Mismatach in sequence length while comparing timer event sequences" + "Expected: " + Arrays.toString(expectedOutputTimerEvents) + " Found: " + Arrays.toString(receivedTimestampsArr));
@Test public void testNormal() throws IllegalStateException, AnalysisConfigurationException, InterruptedException { final List<Entry<Long, Integer>> eventList = this.passEventListToReader(this.simpleListReader); Assert.assertEquals(0, this.sinkPlugin.size()); this.analysisController.run(); Assert.assertEquals(AnalysisController.STATE.TERMINATED, this.analysisController.getState()); // Make sure that all events have been provided to the delay filter (otherwise the test make no sense) Assert.assertEquals("Test invalid: Unexpected number of events provided TO the delay filter", eventList.size(), this.countingFilterReader.getMessageCount()); // Make sure that all events have been passed through the delay filter Assert.assertEquals("Unexpected number of events relayed by the delay filter", eventList.size(), this.countingFilterDelayed.getMessageCount()); this.checkTiming(); // Make sure that exactly the right objects have been passed this.checkRelayedRecords(); } }
final ListCollectionFilter<NamedDoubleTimeSeriesPoint> sinkPlugin = new ListCollectionFilter<>(new Configuration(), controller); Assert.assertTrue(sinkPlugin.getList().isEmpty()); controller.connect(aggregator, TimeSeriesPointAggregatorFilter.OUTPUT_PORT_NAME_AGGREGATED_TSPOINT, sinkPlugin, ListCollectionFilter.INPUT_PORT_NAME); Assert.assertEquals(0, sinkPlugin.getList().size()); controller.run(); Assert.assertEquals(3, sinkPlugin.getList().size()); Assert.assertEquals(5L, sinkPlugin.getList().get(0).getTime()); Assert.assertEquals(10L, sinkPlugin.getList().get(1).getTime()); Assert.assertEquals(15L, sinkPlugin.getList().get(2).getTime()); Assert.assertEquals(Double.NaN, sinkPlugin.getList().get(1).getDoubleValue(), 0.001d);
/** * This method initializes the setup. */ @Before public void before() { this.controller = new AnalysisController(); this.reader = new ListReader<>(new Configuration(), this.controller); this.sinkPlugin = new ListCollectionFilter<>(new Configuration(), this.controller); }
public List<IMonitoringRecord> runAnalysis(final File workingDirectory) throws IllegalStateException, AnalysisConfigurationException { final File[] directories = workingDirectory.listFiles(FILE_FILTER); if (null == directories) { return Collections.emptyList(); } final Configuration conf = new Configuration(); final AnalysisController analysisController = new AnalysisController(); try { conf.setProperty(AsciiLogReader.CONFIG_PROPERTY_NAME_INPUTDIRS, Configuration.toProperty(directories)); final AsciiLogReader reader = new AsciiLogReader(conf, analysisController); final ListCollectionFilter<IMonitoringRecord> collectionSink = new ListCollectionFilter<>( new Configuration(), analysisController); analysisController.connect(reader, AsciiLogReader.OUTPUT_PORT_NAME_RECORDS, collectionSink, ListCollectionFilter.INPUT_PORT_NAME); analysisController.run(); return collectionSink.getList(); } finally { this.deleteTempoararyFiles(directories); } }
@Override protected List<IMonitoringRecord> readEvents() { return this.sinkFilter.getList(); } }
public TestAnalysis(final Configuration configuration, final Class<? extends AbstractReaderPlugin> readerClass) throws Exception { this.analysisController = new AnalysisController(); final AbstractReaderPlugin reader = this.newReader(readerClass, configuration, this.analysisController); final String outputPortName = reader.getAllOutputPortNames()[0]; this.sinkPlugin = new ListCollectionFilter<IMonitoringRecord>(new Configuration(), this.analysisController); this.analysisController.connect(reader, outputPortName, this.sinkPlugin, ListCollectionFilter.INPUT_PORT_NAME); this.thread = new Thread("TestAnalysis thread") { @Override public void run() { try { TestAnalysis.this.getAnalysisController().run(); } catch (IllegalStateException | AnalysisConfigurationException e) { throw new IllegalStateException("Should never happen", e); } } }; }
final ListCollectionFilter<NamedDoubleTimeSeriesPoint> sinkPlugin = new ListCollectionFilter<>(new Configuration(), controller); Assert.assertTrue(sinkPlugin.getList().isEmpty()); controller.connect(aggregator, TimeSeriesPointAggregatorFilter.OUTPUT_PORT_NAME_AGGREGATED_TSPOINT, sinkPlugin, ListCollectionFilter.INPUT_PORT_NAME); Assert.assertEquals(0, sinkPlugin.getList().size()); controller.run(); Assert.assertEquals(3, sinkPlugin.getList().size()); Assert.assertEquals(5999999L, sinkPlugin.getList().get(0).getTime()); Assert.assertEquals(10999999L, sinkPlugin.getList().get(1).getTime()); Assert.assertEquals(15999999L, sinkPlugin.getList().get(2).getTime()); Assert.assertEquals(Double.NaN, sinkPlugin.getList().get(1).getDoubleValue(), 0.001d);
@Override protected List<IMonitoringRecord> readEvents() throws AnalysisConfigurationException { return this.sinkFilter.getList(); } }
@Override protected MonitoringController createController(final int numRecordsWritten) throws IllegalStateException, AnalysisConfigurationException, InterruptedException { this.analysisController = new AnalysisController(); final Configuration readerConfig = new Configuration(); readerConfig.setProperty(SingleSocketTcpReader.CONFIG_PROPERTY_NAME_PORT, SingleSocketTcpWriterReaderTest.PORT1); // readerConfig.setProperty(SingleSocketTcpReader.CONFIG_PROPERTY_NAME_PORT1, SingleSocketTcpWriterReaderTest.PORT1); // readerConfig.setProperty(SingleSocketTcpReader.CONFIG_PROPERTY_NAME_PORT2, SingleSocketTcpWriterReaderTest.PORT2); final SingleSocketTcpReader tcpReader = new SingleSocketTcpReader(readerConfig, this.analysisController); this.sinkFilter = new ListCollectionFilter<IMonitoringRecord>(new Configuration(), this.analysisController); this.analysisController.connect(tcpReader, SingleSocketTcpReader.OUTPUT_PORT_NAME_RECORDS, this.sinkFilter, ListCollectionFilter.INPUT_PORT_NAME); this.analysisThread = new AnalysisControllerThread(this.analysisController); this.analysisThread.start(); Thread.sleep(1000); final Configuration monitoringConfig = ConfigurationFactory.createDefaultConfiguration(); monitoringConfig.setProperty(ConfigurationKeys.WRITER_CLASSNAME, SingleSocketTcpWriter.class.getName()); monitoringConfig.setProperty(SingleSocketTcpWriter.CONFIG_PORT, SingleSocketTcpWriterReaderTest.PORT1); return MonitoringController.createInstance(monitoringConfig); }
this.sinkPluginIfAnomaly = new ListCollectionFilter<>(new Configuration(), this.controller); this.sinkPluginElse = new ListCollectionFilter<>(new Configuration(), this.controller); this.sinkPluginAll = new ListCollectionFilter<>(new Configuration(), this.controller); this.sinkPluginAll, ListCollectionFilter.INPUT_PORT_NAME); Assert.assertTrue(this.sinkPluginIfAnomaly.getList().isEmpty()); Assert.assertTrue(this.sinkPluginElse.getList().isEmpty()); Assert.assertTrue(this.sinkPluginAll.getList().isEmpty());
@Override protected List<IMonitoringRecord> readEvents() throws AnalysisConfigurationException { return this.sinkFilter.getList(); } }
@Override protected MonitoringController createController(final int numRecordsWritten) throws IllegalStateException, AnalysisConfigurationException, InterruptedException { this.analysisController = new AnalysisController(); final Configuration readerConfig = new Configuration(); readerConfig.setProperty(SingleSocketTcpReader.CONFIG_PROPERTY_NAME_PORT, NewSingleSocketTcpWriterReaderTest.PORT1); // readerConfig.setProperty(SingleSocketTcpReader.CONFIG_PROPERTY_NAME_PORT1, SingleSocketTcpWriterReaderTest.PORT1); // readerConfig.setProperty(SingleSocketTcpReader.CONFIG_PROPERTY_NAME_PORT2, SingleSocketTcpWriterReaderTest.PORT2); final SingleSocketTcpReader tcpReader = new SingleSocketTcpReader(readerConfig, this.analysisController); this.sinkFilter = new ListCollectionFilter<IMonitoringRecord>(new Configuration(), this.analysisController); this.analysisController.connect(tcpReader, SingleSocketTcpReader.OUTPUT_PORT_NAME_RECORDS, this.sinkFilter, ListCollectionFilter.INPUT_PORT_NAME); this.analysisThread = new AnalysisControllerThread(this.analysisController); this.analysisThread.start(); Thread.sleep(1000); final Configuration monitoringConfig = ConfigurationFactory.createDefaultConfiguration(); monitoringConfig.setProperty(ConfigurationKeys.WRITER_CLASSNAME, SingleSocketTcpWriter.class.getName()); monitoringConfig.setProperty(SingleSocketTcpWriter.CONFIG_PORT, NewSingleSocketTcpWriterReaderTest.PORT1); return MonitoringController.createInstance(monitoringConfig); }
private void runTestEventBasedTraceRepair(final TraceEventRecords records, final long maxTraceDuration, final long maxTraceTimeout) throws IllegalStateException, AnalysisConfigurationException { final IAnalysisController controller = new AnalysisController(); final ListReader<Object> reader = new ListReader<>(new Configuration(), controller); final Configuration configuration = new Configuration(); configuration.setProperty(EventRecordTraceReconstructionFilter.CONFIG_PROPERTY_NAME_MAX_TRACE_DURATION, Long.toString(maxTraceDuration)); configuration.setProperty(EventRecordTraceReconstructionFilter.CONFIG_PROPERTY_NAME_MAX_TRACE_TIMEOUT, Long.toString(maxTraceTimeout)); configuration.setProperty(EventRecordTraceReconstructionFilter.CONFIG_PROPERTY_NAME_REPAIR_EVENT_BASED_TRACES, "true"); final EventRecordTraceReconstructionFilter traceFilter = new EventRecordTraceReconstructionFilter(configuration, controller); final ListCollectionFilter<TraceEventRecords> sinkPlugin = new ListCollectionFilter<>(new Configuration(), controller); Assert.assertTrue(sinkPlugin.getList().isEmpty()); controller.connect(reader, ListReader.OUTPUT_PORT_NAME, traceFilter, EventRecordTraceReconstructionFilter.INPUT_PORT_NAME_TRACE_RECORDS); controller.connect(traceFilter, EventRecordTraceReconstructionFilter.OUTPUT_PORT_NAME_TRACE_VALID, sinkPlugin, ListCollectionFilter.INPUT_PORT_NAME); reader.addObject(records.getTraceMetadata()); for (final AbstractTraceEvent e : records.getTraceEvents()) { reader.addObject(e); } controller.run(); Assert.assertEquals(AnalysisController.STATE.TERMINATED, controller.getState()); Assert.assertEquals("No trace passed filter", 1, sinkPlugin.getList().size()); Assert.assertTrue("Repair failed", records.getTraceEvents().length < sinkPlugin.getList().get(0).getTraceEvents().length); Assert.assertEquals("Did not repair all BeforeEvents", sinkPlugin.getList().get(0).getTraceEvents().length, 10); }
@Override protected List<IMonitoringRecord> readEvents() throws AnalysisConfigurationException { return this.sinkFilter.getList(); }
@Override protected MonitoringController createController(final int numRecordsWritten) throws IllegalStateException, AnalysisConfigurationException, InterruptedException { this.analysisController = new AnalysisController(); final Configuration readerConfig = new Configuration(); readerConfig.setProperty(DualSocketTcpReader.CONFIG_PROPERTY_NAME_PORT1, DualSocketTcpWriterReaderTest.PORT1); readerConfig.setProperty(DualSocketTcpReader.CONFIG_PROPERTY_NAME_PORT2, DualSocketTcpWriterReaderTest.PORT2); final DualSocketTcpReader tcpReader = new DualSocketTcpReader(readerConfig, this.analysisController); this.sinkFilter = new ListCollectionFilter<IMonitoringRecord>(new Configuration(), this.analysisController); this.analysisController.connect(tcpReader, DualSocketTcpReader.OUTPUT_PORT_NAME_RECORDS, this.sinkFilter, ListCollectionFilter.INPUT_PORT_NAME); this.analysisThread = new AnalysisControllerThread(this.analysisController); this.analysisThread.start(); Thread.sleep(1000); final Configuration monitoringConfig = ConfigurationFactory.createDefaultConfiguration(); monitoringConfig.setProperty(ConfigurationKeys.WRITER_CLASSNAME, DualSocketTcpWriter.class.getName()); monitoringConfig.setProperty(DualSocketTcpWriter.CONFIG_PORT1, DualSocketTcpWriterReaderTest.PORT1); monitoringConfig.setProperty(DualSocketTcpWriter.CONFIG_PORT2, DualSocketTcpWriterReaderTest.PORT2); return MonitoringController.createInstance(monitoringConfig); }
final ListCollectionFilter<NamedDoubleTimeSeriesPoint> sinkPlugin = new ListCollectionFilter<>(new Configuration(), controller); Assert.assertTrue(sinkPlugin.getList().isEmpty()); controller.connect(aggregator, TimeSeriesPointAggregatorFilter.OUTPUT_PORT_NAME_AGGREGATED_TSPOINT, sinkPlugin, ListCollectionFilter.INPUT_PORT_NAME); Assert.assertEquals(0, sinkPlugin.getList().size()); controller.run(); Assert.assertEquals(11, sinkPlugin.getList().size()); Assert.assertEquals(Double.valueOf(1500), Double.valueOf(sinkPlugin.getList().get(0).getDoubleValue())); Assert.assertEquals(Double.valueOf(3000), Double.valueOf(sinkPlugin.getList().get(1).getDoubleValue())); Assert.assertEquals(Double.valueOf(3250), Double.valueOf(sinkPlugin.getList().get(2).getDoubleValue())); Assert.assertEquals(Double.valueOf(2000), Double.valueOf(sinkPlugin.getList().get(3).getDoubleValue())); Assert.assertEquals(Double.valueOf(4000), Double.valueOf(sinkPlugin.getList().get(4).getDoubleValue())); Assert.assertEquals(Double.NaN, sinkPlugin.getList().get(5).getDoubleValue(), 0.0000001d); Assert.assertEquals(Double.NaN, sinkPlugin.getList().get(6).getDoubleValue(), 0.0000001d); Assert.assertEquals(Double.valueOf(6000), Double.valueOf(sinkPlugin.getList().get(7).getDoubleValue())); Assert.assertEquals(Double.valueOf(3000), Double.valueOf(sinkPlugin.getList().get(8).getDoubleValue())); Assert.assertEquals(Double.valueOf(5000), Double.valueOf(sinkPlugin.getList().get(9).getDoubleValue()));