Class RealtimeRecordDelayFilter

java.lang.Object
teetime.framework.CompositeStage
kieker.analysis.generic.RealtimeRecordDelayFilter

public class RealtimeRecordDelayFilter
extends teetime.framework.CompositeStage
Forwards incoming IMonitoringRecords with delays computed from the IMonitoringRecord.getLoggingTimestamp() value (assumed to be in the configured resolution). For example, after initialization, if records with logging timestamps 3000 and 4500 nanos are received, the first record is forwarded immediately; the second will be forwarded 1500 nanos later. The acceleration factor can be used to accelerate/slow down the replay (default 1.0, which means no acceleration/slow down).
The implementation with TeeTime consists of two components: At first a consumer stage (declared as passive) which receives incoming records and stores them in a queue. At second a producer stage (always active) which takes the records from the queue and forwards them with the proper delay.
Note: We assume that the incoming records are ordered by their timestamps. The stage does not provide an ordering mechanism. Records that are received "too late" are forwarded with a delay of 0 but stay "too late".
Since:
1.6
Author:
Andre van Hoorn, Robert von Massow, Jan Waller, Lars Bluemke
  • Field Summary

    Fields inherited from class teetime.framework.CompositeStage

    DEFAULT_PIPE_CAPACITY
  • Constructor Summary

    Constructors 
    Constructor Description
    RealtimeRecordDelayFilter​(java.util.concurrent.TimeUnit timeunit, double accelerationFactor)
    Creates a new instance of this class using the given parameters.
  • Method Summary

    Modifier and Type Method Description
    teetime.framework.InputPort<IMonitoringRecord> getInputPort()  
    long getNegativeDelayWarningBound()
    Returns the time bound for which a warning is displayed when the computed delay falls below -(time bound).
    teetime.framework.OutputPort<IMonitoringRecord> getOutputPort()  
    void setNegativeDelayWarningBound​(long negativeDelay, java.util.concurrent.TimeUnit unit)
    Sets the time bound for which a warning is displayed when the computed delay falls below -(time bound).

    Methods inherited from class teetime.framework.CompositeStage

    connectPorts, connectPorts, createInputPort, createOutputPort

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RealtimeRecordDelayFilter

      public RealtimeRecordDelayFilter​(java.util.concurrent.TimeUnit timeunit, double accelerationFactor)
      Creates a new instance of this class using the given parameters.
      Parameters:
      timeunit - The time unit to be used.
      accelerationFactor - Determines the replay speed.
  • Method Details

    • getNegativeDelayWarningBound

      public long getNegativeDelayWarningBound()
      Returns the time bound for which a warning is displayed when the computed delay falls below -(time bound).
      Returns:
      negativeDelayWarningBound
    • setNegativeDelayWarningBound

      public void setNegativeDelayWarningBound​(long negativeDelay, java.util.concurrent.TimeUnit unit)
      Sets the time bound for which a warning is displayed when the computed delay falls below -(time bound).
      Parameters:
      negativeDelay - The chosen time bound.
      unit - Time unit of the chosen time bound.
    • getInputPort

      public teetime.framework.InputPort<IMonitoringRecord> getInputPort()
    • getOutputPort

      public teetime.framework.OutputPort<IMonitoringRecord> getOutputPort()