/** * This method represents an input port for both operation execution and flow records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_COMBINED, description = "Receives execution and trace events to be selected by trace ID", eventTypes = { ITraceRecord.class, TraceMetadata.class, OperationExecutionRecord.class }) public void inputCombined(final IMonitoringRecord record) { if (record instanceof OperationExecutionRecord) { this.inputOperationExecutionRecord((OperationExecutionRecord) record); } else if ((record instanceof ITraceRecord) || (record instanceof TraceMetadata)) { this.inputTraceEvent((IFlowRecord) record); } // else discard it, we should never have gotten it anyhow }
/** * * @param timestampFilter * @return * @throws IllegalStateException * @throws AnalysisConfigurationException */ private TraceIdFilter createTraceIdFilter(final TimestampFilter timestampFilter) throws IllegalStateException, AnalysisConfigurationException { // Create the trace ID filter and connect to the timestamp filter's output port final Configuration configTraceIdFilterFlow = new Configuration(); if (this.settings.getSelectedTraces().isEmpty()) { configTraceIdFilterFlow.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECT_ALL_TRACES, Boolean.TRUE.toString()); } else { configTraceIdFilterFlow.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECT_ALL_TRACES, Boolean.FALSE.toString()); configTraceIdFilterFlow.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECTED_TRACES, Configuration .toProperty(this.settings.getSelectedTraces().toArray(new Long[this.settings.getSelectedTraces().size()]))); } final TraceIdFilter traceIdFilter = new TraceIdFilter(configTraceIdFilterFlow, this.analysisController); this.analysisController.connect(timestampFilter, TimestampFilter.OUTPUT_PORT_NAME_WITHIN_PERIOD, traceIdFilter, TraceIdFilter.INPUT_PORT_NAME_COMBINED); return traceIdFilter; }
/** * This method represents an input port for operation execution records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_EXECUTION, description = "Receives execution events to be selected by trace ID", eventTypes = { OperationExecutionRecord.class }) public void inputOperationExecutionRecord(final OperationExecutionRecord record) { if (this.acceptId(record.getTraceId())) { super.deliver(OUTPUT_PORT_NAME_MATCH, record); } else { super.deliver(OUTPUT_PORT_NAME_MISMATCH, record); } } }
traceIdFilter = new TraceIdFilter(configTraceIdFilterFlow, this.analysisController);
/** * This method represents an input port for operation execution records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_EXECUTION, description = "Receives execution events to be selected by trace ID", eventTypes = { OperationExecutionRecord.class }) public void inputOperationExecutionRecord(final OperationExecutionRecord record) { if (this.acceptId(record.getTraceId())) { super.deliver(OUTPUT_PORT_NAME_MATCH, record); } else { super.deliver(OUTPUT_PORT_NAME_MISMATCH, record); } } }
filterConfig.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECT_ALL_TRACES, Boolean.FALSE.toString()); filterConfig.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECTED_TRACES, Configuration.toProperty(idsToPass.toArray(new Long[idsToPass.size()]))); final TraceIdFilter filter = new TraceIdFilter(filterConfig, controller); final ListCollectionFilter<AbstractTraceEvent> sinkPlugin = new ListCollectionFilter<AbstractTraceEvent>(new Configuration(), controller);
/** * This method represents an input port for both operation execution and flow records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_COMBINED, description = "Receives execution and trace events to be selected by trace ID", eventTypes = { ITraceRecord.class, TraceMetadata.class, OperationExecutionRecord.class }) public void inputCombined(final IMonitoringRecord record) { if (record instanceof OperationExecutionRecord) { this.inputOperationExecutionRecord((OperationExecutionRecord) record); } else if ((record instanceof ITraceRecord) || (record instanceof TraceMetadata)) { this.inputTraceEvent((IFlowRecord) record); } // else discard it, we should never have gotten it anyhow }
/** * This method represents an input port for flow records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_FLOW, description = "Receives trace events to be selected by trace ID", eventTypes = { ITraceRecord.class, TraceMetadata.class }) public void inputTraceEvent(final IFlowRecord record) { final long traceId; if (record instanceof TraceMetadata) { traceId = ((TraceMetadata) record).getTraceId(); } else if (record instanceof AbstractTraceEvent) { traceId = ((ITraceRecord) record).getTraceId(); } else { // should not happen given the accepted type return; } if (this.acceptId(traceId)) { super.deliver(OUTPUT_PORT_NAME_MATCH, record); } else { super.deliver(OUTPUT_PORT_NAME_MISMATCH, record); } }
filterConfig.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECT_ALL_TRACES, Boolean.FALSE.toString()); filterConfig.setProperty(TraceIdFilter.CONFIG_PROPERTY_NAME_SELECTED_TRACES, Configuration.toProperty(idsToPass.toArray(new Long[idsToPass.size()]))); final TraceIdFilter filter = new TraceIdFilter(filterConfig, controller); final ListCollectionFilter<AbstractTraceEvent> sinkPlugin = new ListCollectionFilter<AbstractTraceEvent>(new Configuration(), controller);
/** * This method represents an input port for flow records. * * @param record * The next record. */ @InputPort(name = INPUT_PORT_NAME_FLOW, description = "Receives trace events to be selected by trace ID", eventTypes = { ITraceRecord.class, TraceMetadata.class }) public void inputTraceEvent(final IFlowRecord record) { final long traceId; if (record instanceof TraceMetadata) { traceId = ((TraceMetadata) record).getTraceId(); } else if (record instanceof AbstractTraceEvent) { traceId = ((ITraceRecord) record).getTraceId(); } else { // should not happen given the accepted type return; } if (this.acceptId(traceId)) { super.deliver(OUTPUT_PORT_NAME_MATCH, record); } else { super.deliver(OUTPUT_PORT_NAME_MISMATCH, record); } }
final Configuration filterConfig = new Configuration(); final TraceIdFilter filter = new TraceIdFilter(filterConfig, controller); final ListCollectionFilter<AbstractTraceEvent> sinkPlugin = new ListCollectionFilter<AbstractTraceEvent>(new Configuration(), controller);
final TraceIdFilter traceIdFilter = new TraceIdFilter(confTraceIdFilter, analysisController);