diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java index 218070b7e04dc9a37e53f73f0a90b40c7b6d7fac..abdeb19507ebd3d9be69a992c83e39f9afe1721c 100644 --- a/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java +++ b/src/main/java/kieker/analysis/stage/tracediagnosis/OperationCallAggregator.java @@ -53,10 +53,9 @@ public final class OperationCallAggregator extends AbstractTransformation<Operat final Statistics statistics = StatisticsUtility.calculateStatistics(durations); super.getOutputPort().send( new AggregatedOperationCall(aggregationList.get(0).getContainer(), aggregationList.get(0).getComponent(), aggregationList.get(0).getOperation(), - aggregationList.get(0).getFailedCause(), statistics.getTotalDuration(), statistics.getMedianDuration(), statistics.getMinDuration(), - statistics - .getMaxDuration(), - statistics.getMeanDuration(), aggregationList.size())); + aggregationList.get(0).getOrderIndex(), aggregationList.get(0).getFailedCause(), statistics.getTotalDuration(), + statistics.getMedianDuration(), statistics.getMinDuration(), statistics.getMaxDuration(), statistics.getMeanDuration(), + aggregationList.size())); } super.onTerminating(); diff --git a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java index abe495fea2f912161caa6e906b1138b4a1ca9471..3691c71402d8409ad6b8f5b5d505a9b9788e6ece 100644 --- a/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java +++ b/src/main/java/kieker/analysis/stage/tracediagnosis/TraceReconstructor.java @@ -119,8 +119,8 @@ final class TraceReconstructor extends AbstractTransformation<IFlowRecord, Trace private void handleBeforeOperationEventRecord(final BeforeOperationEvent record) { this.stack.push(record); - final OperationCall newCall = new OperationCall(this.hostname, record.getClassSignature(), record.getOperationSignature(), this.traceID, - record.getLoggingTimestamp()); + final OperationCall newCall = new OperationCall(this.hostname, record.getClassSignature(), record.getOperationSignature(), record.getOrderIndex(), + this.traceID, record.getLoggingTimestamp()); if (this.root == null) { this.root = newCall; } else { diff --git a/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java b/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java index c1abd011db95e23147289e7493f1b337cea780f3..28ea68403d68c9cf6ac177192d5b60fa1f589ee7 100644 --- a/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java +++ b/src/main/java/kieker/analysis/traceanalysisdomain/AbstractOperationCall.java @@ -43,14 +43,17 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> private int stackSize; private String failedCause; - public AbstractOperationCall(final String container, final String component, final String operation) { - this(container, component, operation, null); + private int orderIndex; + + public AbstractOperationCall(final String container, final String component, final String operation, final int orderIndex) { + this(container, component, operation, orderIndex, null); } - public AbstractOperationCall(final String container, final String component, final String operation, final String failedCause) { + public AbstractOperationCall(final String container, final String component, final String operation, final int orderIndex, final String failedCause) { this.container = container.intern(); this.component = component.intern(); this.operation = operation.intern(); + this.orderIndex = orderIndex; this.failedCause = (failedCause != null) ? failedCause.intern() : null; } @@ -76,6 +79,10 @@ public abstract class AbstractOperationCall<T extends AbstractOperationCall<T>> return this.operation; } + public int getOrderIndex() { + return orderIndex; + } + public final int getStackDepth() { return this.stackDepth; } diff --git a/src/main/java/kieker/analysis/traceanalysisdomain/AggregatedOperationCall.java b/src/main/java/kieker/analysis/traceanalysisdomain/AggregatedOperationCall.java index 01bbff30476bf4a9203d3a254a95e1cd0c76399b..b78451b429caffe915d9f638eddb58cb8babda8e 100644 --- a/src/main/java/kieker/analysis/traceanalysisdomain/AggregatedOperationCall.java +++ b/src/main/java/kieker/analysis/traceanalysisdomain/AggregatedOperationCall.java @@ -33,7 +33,7 @@ public final class AggregatedOperationCall extends AbstractOperationCall<Aggrega private int calls; public AggregatedOperationCall(final OperationCall call) { - super(call.getContainer(), call.getComponent(), call.getOperation(), call.getFailedCause()); + super(call.getContainer(), call.getComponent(), call.getOperation(), call.getOrderIndex(), call.getFailedCause()); for (final OperationCall child : call.getChildren()) { addChild(new AggregatedOperationCall(child)); @@ -43,10 +43,11 @@ public final class AggregatedOperationCall extends AbstractOperationCall<Aggrega this.setStackSize(call.getStackSize()); } - public AggregatedOperationCall(final String container, final String component, final String operation, // NOPMD (a long parameter list cannot be avoided) + public AggregatedOperationCall(final String container, final String component, final String operation, final int orderIndex, // NOPMD (a long parameter list + // cannot be avoided) final String failedCause, final long totalDuration, final long medianDuration, final long minDuration, final long maxDuration, final long meanDuration, final int calls) { - super(container, component, operation); + super(container, component, operation, orderIndex); this.totalDuration = totalDuration; this.medianDuration = medianDuration; diff --git a/src/main/java/kieker/analysis/traceanalysisdomain/OperationCall.java b/src/main/java/kieker/analysis/traceanalysisdomain/OperationCall.java index f240af6db725bc0cbf0c2c38f55d1c38633c1a7d..05099f2a0800d8b69c10ff2e07886bc6640deeee 100644 --- a/src/main/java/kieker/analysis/traceanalysisdomain/OperationCall.java +++ b/src/main/java/kieker/analysis/traceanalysisdomain/OperationCall.java @@ -32,13 +32,13 @@ public final class OperationCall extends AbstractOperationCall<OperationCall> { private long duration; private long timestamp; - public OperationCall(final String container, final String component, final String operation, final long traceID, final long timestamp) { - this(container, component, operation, null, traceID, timestamp); + public OperationCall(final String container, final String component, final String operation, final int orderIndex, final long traceID, final long timestamp) { + this(container, component, operation, orderIndex, null, traceID, timestamp); } - public OperationCall(final String container, final String component, final String operation, final String failedCause, final long traceID, + public OperationCall(final String container, final String component, final String operation, final int orderIndex, final String failedCause, final long traceID, final long timestamp) { - super(container, component, operation, failedCause); + super(container, component, operation, orderIndex, failedCause); this.traceID = traceID; this.timestamp = timestamp; @@ -50,6 +50,7 @@ public final class OperationCall extends AbstractOperationCall<OperationCall> { child.parent = this; } + @Override public OperationCall getParent() { return this.parent; }