Class LatencyTrackerComputation

java.lang.Object
org.nuxeo.lib.stream.computation.AbstractComputation
org.nuxeo.lib.stream.tools.command.LatencyTrackerComputation
All Implemented Interfaces:
Computation
Direct Known Subclasses:
LatencyDatadogComputation, LatencyMonitorComputation

public class LatencyTrackerComputation extends AbstractComputation
A computation that sends periodically latencies information into a Log.
Since:
10.1
  • Field Details

    • OUTPUT_STREAM

      protected static final String OUTPUT_STREAM
      See Also:
    • manager

      protected final LogManager manager
    • logNames

      protected final List<Name> logNames
    • intervalMs

      protected final int intervalMs
    • count

      protected final int count
    • verbose

      protected final boolean verbose
    • codec

      protected final Codec<Record> codec
    • remaining

      protected int remaining
    • logGroups

      protected final List<LogPartitionGroup> logGroups
    • refreshGroupCounter

      protected int refreshGroupCounter
  • Constructor Details

    • LatencyTrackerComputation

      public LatencyTrackerComputation(LogManager manager, List<Name> logNames, String computationName, int intervalSecond, int count, boolean verbose, Codec<Record> codec, int outputStream)
  • Method Details

    • init

      public void init(ComputationContext context)
      Description copied from interface: Computation
      Called when the framework has registered the computation successfully. Gives users a first opportunity to schedule timer callbacks and produce records. This method can be called multiple times.
      Specified by:
      init in interface Computation
      Overrides:
      init in class AbstractComputation
      Parameters:
      context - The computation context object provided by the system.
    • processTimer

      public void processTimer(ComputationContext context, String key, long timestamp)
      Description copied from interface: Computation
      Process a timer callback previously set via ComputationContext.setTimer(String, long).
      Specified by:
      processTimer in interface Computation
      Overrides:
      processTimer in class AbstractComputation
      Parameters:
      context - The computation context object provided by the system.
      key - The name of the timer.
      timestamp - The timestamp (in ms) for which the callback was scheduled.
    • getLogGroup

      protected List<LogPartitionGroup> getLogGroup()
    • refreshGroup

      protected boolean refreshGroup()
    • processLatencies

      protected void processLatencies(ComputationContext context, LogPartitionGroup logGroup, List<Latency> latencies)
    • encodeLatency

      protected byte[] encodeLatency(Latency latency)
    • encodeKey

      public static String encodeKey(LogPartitionGroup logGroup, int partition)
    • decodeKey

      public static LogPartitionGroup decodeKey(String key)
    • destroy

      public void destroy()
      Description copied from interface: Computation
      Called when the framework is ready to shutdown the computation. Gives users a chance to perform some cleanup before the process is killed.
    • processRecord

      public void processRecord(ComputationContext context, String inputStreamName, Record record)
      Description copied from interface: Computation
      Process an incoming record on one of the computation's input streams.
      Parameters:
      context - The computation context object provided by the system.
      inputStreamName - Name of the input stream that provides the record.
      record - The record.