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  DataImportProfiler.Column
    Instrumentation for per-column work as a component of row processing.
  • Field Summary

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

    Constructors 
    Constructor Description
    DataImportProfiler()  
  • Method Summary

    Modifier and Type Method Description
    abstract void beginCommit()
    Record the beginning of an interval spent synchronizing data and writing checkpoints for commit.
    abstract void beginFlush()
    Record the beginning of an interval spent flushing data.
    abstract void beginImportStateUpdate()
    Record the beginning of an interval spent updating import state if doing batched row processing.
    abstract void beginPrepareCheckpoint()
    Record the beginning of an interval spent preparing checkpoints for commit.
    abstract void beginRead()
    Record the beginning of an interval spent reading data.
    abstract void beginRecordProcessing()
    Record the beginning of an interval spent processing record entries.
    abstract void beginRowProcessing()
    Record the beginning of an interval spent processing row entries.
    abstract void beginWait()
    Record the beginning of an interval spent waiting for data.
    abstract void endCommit()
    Record the end of an interval spent synchronizing data and writing checkpoints for commit.
    abstract void endFlush()
    Record the end of an interval spent flushing data.
    abstract void endImportStateUpdate()
    Record the end of an interval spent updating import state if doing batched row processing.
    abstract void endPrepareCheckpoint()
    Record the end of an interval spent preparing checkpoints for commit.
    abstract void endRead()
    Record the end of an interval spent reading data.
    abstract void endRecordProcessing()
    Record the end of an interval spent processing record entries.
    abstract void endRowProcessing()
    Record the end of an interval spent processing row entries.
    abstract void endWait()
    Record the end of an interval spent waiting for data.
    abstract DataImportProfiler.Column getColumn​(String name)
    Get a DataImportProfiler.Column for per-column instrumentation.
    static DataImportProfiler 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

  • Constructor Details

  • 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