Class DataImportProfiler

java.lang.Object
com.illumon.iris.db.tables.dataimport.logtailer.DataImportProfiler

public abstract class DataImportProfiler extends Object
Tool to accumulate profiling statistics from a DataImportStreamProcessor.

Currently this instruments most "high frequency" actions, but does not cover header processing, truncation, or shutdown.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    Instrumentation for per-column work as a component of row processing.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final DataImportProfiler
    The default no-op profiler, for use in testing and initialization.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    abstract void
    Record the beginning of an interval spent synchronizing data and writing checkpoints for commit.
    abstract void
    Record the beginning of an interval spent flushing data.
    abstract void
    Record the beginning of an interval spent updating import state if doing batched row processing.
    abstract void
    Record the beginning of an interval spent preparing checkpoints for commit.
    abstract void
    Record the beginning of an interval spent reading data.
    abstract void
    Record the beginning of an interval spent processing record entries.
    abstract void
    Record the beginning of an interval spent processing row entries.
    abstract void
    Record the beginning of an interval spent waiting for data.
    abstract void
    Record the end of an interval spent synchronizing data and writing checkpoints for commit.
    abstract void
    Record the end of an interval spent flushing data.
    abstract void
    Record the end of an interval spent updating import state if doing batched row processing.
    abstract void
    Record the end of an interval spent preparing checkpoints for commit.
    abstract void
    Record the end of an interval spent reading data.
    abstract void
    Record the end of an interval spent processing record entries.
    abstract void
    Record the end of an interval spent processing row entries.
    abstract void
    Record the end of an interval spent waiting for data.
    Get a DataImportProfiler.Column for per-column instrumentation.
    make(com.illumon.iris.db.tables.dataimport.logtailer.DataImportStreamProcessor.ProfilingLevel profilingLevel, FullTableLocationKey streamKey)
    Get a data import profiler for the specified level and stream.

    Methods inherited from class java.lang.Object

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

    • NOOP_PROFILER

      public static final DataImportProfiler NOOP_PROFILER
      The default no-op profiler, for use in testing and initialization.
  • Constructor Details

    • DataImportProfiler

      public DataImportProfiler()
  • Method Details

    • beginWait

      public abstract void beginWait()
      Record the beginning of an interval spent waiting for data.
    • endWait

      public abstract void endWait()
      Record the end of an interval spent waiting for data.
    • beginRead

      public abstract void beginRead()
      Record the beginning of an interval spent reading data.
    • endRead

      public abstract void endRead()
      Record the end of an interval spent reading data.
    • beginRecordProcessing

      public abstract void beginRecordProcessing()
      Record the beginning of an interval spent processing record entries.
    • endRecordProcessing

      public abstract void endRecordProcessing()
      Record the end of an interval spent processing record entries.
    • beginRowProcessing

      public abstract void beginRowProcessing()
      Record the beginning of an interval spent processing row entries.
    • endRowProcessing

      public abstract void endRowProcessing()
      Record the end of an interval spent processing row entries.
    • beginFlush

      public abstract void beginFlush()
      Record the beginning of an interval spent flushing data.
    • endFlush

      public abstract void endFlush()
      Record the end of an interval spent flushing data.
    • beginPrepareCheckpoint

      public abstract void beginPrepareCheckpoint()
      Record the beginning of an interval spent preparing checkpoints for commit.
    • endPrepareCheckpoint

      public abstract void endPrepareCheckpoint()
      Record the end of an interval spent preparing checkpoints for commit.
    • beginCommit

      public abstract void beginCommit()
      Record the beginning of an interval spent synchronizing data and writing checkpoints for commit.
    • endCommit

      public abstract void endCommit()
      Record the end of an interval spent synchronizing data and writing checkpoints for commit.
    • beginImportStateUpdate

      public abstract void beginImportStateUpdate()
      Record the beginning of an interval spent updating import state if doing batched row processing.
    • endImportStateUpdate

      public abstract void endImportStateUpdate()
      Record the end of an interval spent updating import state if doing batched row processing.
    • getColumn

      public abstract DataImportProfiler.Column getColumn(@NotNull String name)
      Get a DataImportProfiler.Column for per-column instrumentation.
      Parameters:
      name - The column name
      Returns:
      The DataImportProfiler.Column
    • make

      public static DataImportProfiler make(@NotNull com.illumon.iris.db.tables.dataimport.logtailer.DataImportStreamProcessor.ProfilingLevel profilingLevel, @NotNull FullTableLocationKey streamKey)
      Get a data import profiler for the specified level and stream.
      Parameters:
      profilingLevel - The granularity level of the profiler
      streamKey - The stream's key
      Returns:
      A profiler for the specified level and stream