Class AbstractRWLogger

java.lang.Object
io.perl.logger.impl.ResultsLogger
io.sbk.logger.impl.AbstractRWLogger
All Implemented Interfaces:
io.perl.logger.PerformanceLogger, io.perl.logger.Print, io.perl.logger.ReportLatency, CountReaders, CountRW, CountWriters, Logger, ReadRequestsLogger, RWLogger, RWPrint, SetRW, WriteRequestsLogger
Direct Known Subclasses:
GrpcLogger, SystemLogger

public abstract class AbstractRWLogger extends io.perl.logger.impl.ResultsLogger implements RWLogger, SetRW
Base implementation of RWLogger providing shared read/write request accounting, periodic aggregation, and printing helpers. Subclasses implement concrete outputs (System out, CSV, Prometheus, gRPC) by overriding the print methods while reusing the counters, percentiles, and CLI configuration handling provided here.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a logger with empty writer, reader, and request counters.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Add the Metric type specific command line arguments.
    protected final void
    appendResultString(StringBuilder out, int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMBPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingBytes, long readResponsePendingRecords, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
    Appends a complete read/write benchmark result.
    protected final void
    appendWriteAndReadRequests(@NotNull StringBuilder out, long writeRequestBytes, double writeRequestMbPerSec, long writesRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMbPerSec, long readRequestRecords, double readRequestRecordsPerSec)
    Appends write- and read-request throughput values.
    protected final void
    appendWriteAndReadRequestsPending(@NotNull StringBuilder out, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingBytes, long readResponsePendingRecords, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes)
    Appends pending request and response counts.
    protected final void
    appendWriteAndReadTimeoutEvents(@NotNull StringBuilder out, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readeTimeoutEventsPerSec)
    Appends write and read timeout counters.
    protected final void
    appendWritesAndReaders(@NotNull StringBuilder out, int writers, int maxWriters, int readers, int maxReaders)
    Appends writer and reader concurrency counts.
    void
    Close the Logger.
    void
    Decrements the count of active readers.
    void
    Decrements the count of active writers.
    protected final Action
    Returns the benchmark action.
    protected final int
    Returns the configured request-counter ID dimension limit.
    Opens the default logger configuration resource.
    int
    Default method to indicate to record read requests or not.
    protected final int
    Returns the maximum observed reader count.
    int
    Default method to indicate to record write requests or not.
    protected final int
    Returns the maximum observed writer count.
    int
     
    protected final int
    Returns the current reader count.
    protected final String
    Returns the configured storage name.
    protected final io.time.Time
    Returns the configured time source.
    protected final int
    Returns the current writer count.
    void
    Increments the count of active readers.
    void
    Increments the count of active writers.
    final boolean
    Reports whether read-request metrics are enabled.
    final boolean
    Reports whether write-request metrics are enabled.
    void
    open(ParsedOptions params, String storageName, Action action, io.time.Time time)
    Open the Logger.
    void
    Parse the Metric specific command line arguments.
    final void
    print(double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
     
    void
    print(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMbPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
    Print the Periodic performance results.
    final void
    printTotal(double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
     
    void
    printTotal(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestsMbPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
    Print the "Total" roll-up, typically at the end of a benchmark run.
    void
    recordReadRequests(int readerId, long startTime, long bytes, long events)
    Default method to record every/multiple read event(s).
    void
    recordReadTimeoutEvents(int readerId, long startTime, long timeoutEvents)
    Record read timeout events for a reader.
    void
    recordWriteRequests(int writerId, long startTime, long bytes, long events)
    Default method to record every/multiple write event(s).
    void
    recordWriteTimeoutEvents(int writerId, long startTime, long timeoutEvents)
    Record write timeout events for a writer.
    final void
    setMaxReaders(int val)
    Update the max number of readers seen so far.
    protected final void
    setMaxReadersIds(int maxReaderRequestIds)
    Sets the number of reader request-counter slots.
    final void
    setMaxWriters(int val)
    Update the max number of writers seen so far.
    protected final void
    setMaxWritersIds(int maxWriterRequestIds)
    Sets the number of writer request-counter slots.
    final void
    setReaders(int val)
    Set current number of active readers.
    final void
    setWriters(int val)
    Set current number of active writers.

    Methods inherited from class io.perl.logger.impl.ResultsLogger

    appendResultString, getMaxLatency, getMinLatency, getPercentileNames, getPercentiles, getPrefix, getTimeUnit, setMaxLatency, setMinLatency, setPercentiles, setPrefix, setTimeUnit

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface Logger

    reportFailure, setExceptionHandler

    Methods inherited from interface io.perl.logger.PerformanceLogger

    getMaxLatency, getMinLatency, getPercentiles, getTimeUnit, recordLatency
  • Constructor Details

    • AbstractRWLogger

      public AbstractRWLogger()
      Creates a logger with empty writer, reader, and request counters.
  • Method Details

    • addArgs

      public void addArgs(InputOptions params) throws IllegalArgumentException
      Description copied from interface: Logger
      Add the Metric type specific command line arguments.
      Specified by:
      addArgs in interface Logger
      Parameters:
      params - InputOptions object to be extended.
      Throws:
      IllegalArgumentException - If an exception occurred.
    • parseArgs

      public void parseArgs(ParsedOptions params) throws IllegalArgumentException
      Description copied from interface: Logger
      Parse the Metric specific command line arguments.
      Specified by:
      parseArgs in interface Logger
      Parameters:
      params - ParsedOptions containing driver/logger specific parameters/arguments.
      Throws:
      IllegalArgumentException - If an exception occurred.
    • open

      public void open(ParsedOptions params, String storageName, Action action, io.time.Time time) throws IOException
      Description copied from interface: Logger
      Open the Logger.
      Specified by:
      open in interface Logger
      Parameters:
      params - ParsedOptions including logger-specific configuration.
      storageName - The Name of the storage.
      action - action to print
      time - time interface
      Throws:
      IOException - If an exception occurred.
    • close

      public void close(ParsedOptions params) throws IOException
      Description copied from interface: Logger
      Close the Logger.
      Specified by:
      close in interface Logger
      Parameters:
      params - ParsedOptions used during open; may carry shutdown options.
      Throws:
      IOException - If an exception occurred.
    • getMaxWriterIDs

      public int getMaxWriterIDs()
      Description copied from interface: RWLogger
      Default method to indicate to record write requests or not. Returning 0 disables per-writer request logging.
      Specified by:
      getMaxWriterIDs in interface RWLogger
      Specified by:
      getMaxWriterIDs in interface WriteRequestsLogger
      Returns:
      max writer IDs
    • getMaxReaderIDs

      public int getMaxReaderIDs()
      Description copied from interface: RWLogger
      Default method to indicate to record read requests or not. Returning 0 disables per-reader request logging.
      Specified by:
      getMaxReaderIDs in interface ReadRequestsLogger
      Specified by:
      getMaxReaderIDs in interface RWLogger
      Returns:
      max reader IDs
    • getPrintingIntervalSeconds

      public int getPrintingIntervalSeconds()
      Specified by:
      getPrintingIntervalSeconds in interface io.perl.logger.PerformanceLogger
    • getConfiguredMaxRequestIds

      protected final int getConfiguredMaxRequestIds()
      Returns the configured request-counter ID dimension limit.
      Returns:
      maximum request IDs
    • incrementWriters

      public void incrementWriters()
      Description copied from interface: CountWriters
      Increments the count of active writers. This method should be called when a new writer becomes active.
      Specified by:
      incrementWriters in interface CountWriters
    • decrementWriters

      public void decrementWriters()
      Description copied from interface: CountWriters
      Decrements the count of active writers. This method should be called when a writer completes its operation or becomes inactive.
      Specified by:
      decrementWriters in interface CountWriters
    • incrementReaders

      public void incrementReaders()
      Description copied from interface: CountReaders
      Increments the count of active readers. This method should be called when a new reader becomes active.
      Specified by:
      incrementReaders in interface CountReaders
    • decrementReaders

      public void decrementReaders()
      Description copied from interface: CountReaders
      Decrements the count of active readers. This method should be called when a reader completes its operation or becomes inactive.
      Specified by:
      decrementReaders in interface CountReaders
    • recordWriteRequests

      public void recordWriteRequests(int writerId, long startTime, long bytes, long events)
      Description copied from interface: RWLogger
      Default method to record every/multiple write event(s). No-op by default.
      Specified by:
      recordWriteRequests in interface RWLogger
      Specified by:
      recordWriteRequests in interface WriteRequestsLogger
      Parameters:
      writerId - logical writer identifier (0..N-1)
      startTime - write start time in the active TimeUnit
      bytes - bytes written for these events
      events - number of write events
    • recordWriteTimeoutEvents

      public void recordWriteTimeoutEvents(int writerId, long startTime, long timeoutEvents)
      Description copied from interface: WriteRequestsLogger
      Record write timeout events for a writer.
      Specified by:
      recordWriteTimeoutEvents in interface WriteRequestsLogger
      Parameters:
      writerId - logical writer identifier (0..N-1)
      startTime - time when timeouts were observed
      timeoutEvents - number of timeout events
    • recordReadRequests

      public void recordReadRequests(int readerId, long startTime, long bytes, long events)
      Description copied from interface: RWLogger
      Default method to record every/multiple read event(s). No-op by default.
      Specified by:
      recordReadRequests in interface ReadRequestsLogger
      Specified by:
      recordReadRequests in interface RWLogger
      Parameters:
      readerId - logical reader identifier (0..N-1)
      startTime - read start time in the active TimeUnit
      bytes - bytes read for these events
      events - number of read events
    • recordReadTimeoutEvents

      public void recordReadTimeoutEvents(int readerId, long startTime, long timeoutEvents)
      Description copied from interface: ReadRequestsLogger
      Record read timeout events for a reader.
      Specified by:
      recordReadTimeoutEvents in interface ReadRequestsLogger
      Parameters:
      readerId - logical reader identifier (0..N-1)
      startTime - time when timeouts were observed
      timeoutEvents - number of timeout events
    • getLoggerConfigStream

      public InputStream getLoggerConfigStream()
      Opens the default logger configuration resource.
      Returns:
      logger configuration stream, or null when unavailable
    • getStorageName

      protected final String getStorageName()
      Returns the configured storage name.
      Returns:
      storage name
    • getTime

      protected final io.time.Time getTime()
      Returns the configured time source.
      Returns:
      time source
    • getAction

      protected final Action getAction()
      Returns the benchmark action.
      Returns:
      benchmark action
    • setMaxWritersIds

      protected final void setMaxWritersIds(int maxWriterRequestIds)
      Sets the number of writer request-counter slots.
      Parameters:
      maxWriterRequestIds - number of writer slots
    • setMaxReadersIds

      protected final void setMaxReadersIds(int maxReaderRequestIds)
      Sets the number of reader request-counter slots.
      Parameters:
      maxReaderRequestIds - number of reader slots
    • getWritersCount

      protected final int getWritersCount()
      Returns the current writer count.
      Returns:
      current writer count
    • getReadersCount

      protected final int getReadersCount()
      Returns the current reader count.
      Returns:
      current reader count
    • getMaxWritersCount

      protected final int getMaxWritersCount()
      Returns the maximum observed writer count.
      Returns:
      maximum observed writer count
    • getMaxReadersCount

      protected final int getMaxReadersCount()
      Returns the maximum observed reader count.
      Returns:
      maximum observed reader count
    • setWriters

      public final void setWriters(int val)
      Description copied from interface: SetRW
      Set current number of active writers.
      Specified by:
      setWriters in interface SetRW
      Parameters:
      val - new value.
    • setMaxWriters

      public final void setMaxWriters(int val)
      Description copied from interface: SetRW
      Update the max number of writers seen so far.
      Specified by:
      setMaxWriters in interface SetRW
      Parameters:
      val - new value.
    • setReaders

      public final void setReaders(int val)
      Description copied from interface: SetRW
      Set current number of active readers.
      Specified by:
      setReaders in interface SetRW
      Parameters:
      val - new value.
    • setMaxReaders

      public final void setMaxReaders(int val)
      Description copied from interface: SetRW
      Update the max number of readers seen so far.
      Specified by:
      setMaxReaders in interface SetRW
      Parameters:
      val - new value.
    • isWriteRequestsEnabled

      public final boolean isWriteRequestsEnabled()
      Reports whether write-request metrics are enabled.
      Returns:
      true when write requests are measured
    • isReadRequestsEnabled

      public final boolean isReadRequestsEnabled()
      Reports whether read-request metrics are enabled.
      Returns:
      true when read requests are measured
    • appendWritesAndReaders

      protected final void appendWritesAndReaders(@NotNull @NotNull StringBuilder out, int writers, int maxWriters, int readers, int maxReaders)
      Appends writer and reader concurrency counts.
      Parameters:
      out - destination buffer
      writers - current writers
      maxWriters - maximum writers
      readers - current readers
      maxReaders - maximum readers
    • appendWriteAndReadRequests

      protected final void appendWriteAndReadRequests(@NotNull @NotNull StringBuilder out, long writeRequestBytes, double writeRequestMbPerSec, long writesRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMbPerSec, long readRequestRecords, double readRequestRecordsPerSec)
      Appends write- and read-request throughput values.
      Parameters:
      out - destination buffer
      writeRequestBytes - write-request bytes
      writeRequestMbPerSec - write-request throughput
      writesRequestRecords - write-request records
      writeRequestRecordsPerSec - write requests per second
      readRequestBytes - read-request bytes
      readRequestMbPerSec - read-request throughput
      readRequestRecords - read-request records
      readRequestRecordsPerSec - read requests per second
    • appendWriteAndReadRequestsPending

      protected final void appendWriteAndReadRequestsPending(@NotNull @NotNull StringBuilder out, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingBytes, long readResponsePendingRecords, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes)
      Appends pending request and response counts.
      Parameters:
      out - destination buffer
      writeResponsePendingRecords - pending write-response records
      writeResponsePendingBytes - pending write-response bytes
      readResponsePendingBytes - pending read-response bytes
      readResponsePendingRecords - pending read-response records
      writeReadRequestPendingRecords - pending combined request records
      writeReadRequestPendingBytes - pending combined request bytes
    • appendWriteAndReadTimeoutEvents

      protected final void appendWriteAndReadTimeoutEvents(@NotNull @NotNull StringBuilder out, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readeTimeoutEventsPerSec)
      Appends write and read timeout counters.
      Parameters:
      out - destination buffer
      writeTimeoutEvents - write timeout events
      writeTimeoutEventsPerSec - write timeout events per second
      readTimeoutEvents - read timeout events
      readeTimeoutEventsPerSec - read timeout events per second
    • appendResultString

      protected final void appendResultString(StringBuilder out, int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMBPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingBytes, long readResponsePendingRecords, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
      Appends a complete read/write benchmark result.
      Parameters:
      out - destination buffer
      writers - current writers
      maxWriters - maximum writers
      readers - current readers
      maxReaders - maximum readers
      writeRequestBytes - write-request bytes
      writeRequestMbPerSec - write-request throughput
      writeRequestRecords - write-request records
      writeRequestRecordsPerSec - write requests per second
      readRequestBytes - read-request bytes
      readRequestMBPerSec - read-request throughput
      readRequestRecords - read-request records
      readRequestRecordsPerSec - read requests per second
      writeResponsePendingRecords - pending write-response records
      writeResponsePendingBytes - pending write-response bytes
      readResponsePendingBytes - pending read-response bytes
      readResponsePendingRecords - pending read-response records
      writeReadRequestPendingRecords - pending combined request records
      writeReadRequestPendingBytes - pending combined request bytes
      writeTimeoutEvents - write timeout events
      writeTimeoutEventsPerSec - write timeout events per second
      readTimeoutEvents - read timeout events
      readTimeoutEventsPerSec - read timeout events per second
      seconds - elapsed seconds
      bytes - completed bytes
      records - completed records
      recsPerSec - completed records per second
      mbPerSec - completed megabytes per second
      avgLatency - average latency
      minLatency - minimum latency
      maxLatency - maximum latency
      invalid - invalid latency count
      lowerDiscard - latencies below the configured range
      higherDiscard - latencies above the configured range
      slc1 - first SLC count
      slc2 - second SLC count
      percentileLatencies - percentile latency values
      percentileLatencyCounts - percentile sample counts
    • print

      public final void print(double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
      Specified by:
      print in interface io.perl.logger.Print
      Overrides:
      print in class io.perl.logger.impl.ResultsLogger
    • print

      public void print(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestMbPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
      Description copied from interface: RWPrint
      Print the Periodic performance results.
      Specified by:
      print in interface RWPrint
      Parameters:
      writers - number of active writers
      maxWriters - Max writers
      readers - number of active readers
      maxReaders - Max Readers
      writeRequestBytes - Write requests Bytes
      writeRequestMbPerSec - Write requests MB/sec
      writeRequestRecords - Write Requests
      writeRequestRecordsPerSec - Write Requests/sec
      readRequestBytes - Read requests Bytes
      readRequestMbPerSec - Read requests MB/sec
      readRequestRecords - Read requests
      readRequestRecordsPerSec - Read Requests/sec
      writeResponsePendingRecords - Write response pending records
      writeResponsePendingBytes - Write response pending bytes
      readResponsePendingRecords - Read response pending records
      readResponsePendingBytes - Read response pending bytes
      writeReadRequestPendingRecords - Write read pending records
      writeReadRequestPendingBytes - Write read pending bytes
      writeTimeoutEvents - Timeout Write Events
      writeTimeoutEventsPerSec - Timeout Write Events/sec
      readTimeoutEvents - Timeout Read Events
      readTimeoutEventsPerSec - Timeout Write Events/sec
      seconds - reporting duration in seconds
      bytes - number of bytes read/write
      records - data to write.
      recsPerSec - records per second.
      mbPerSec - Throughput value in terms of MB (Mega Bytes) per Second.
      avgLatency - Average Latency.
      minLatency - Minimum Latency.
      maxLatency - Maximum Latency.
      invalid - Number of invalid/negative latencies.
      lowerDiscard - number of discarded latencies which are less than minimum latency.
      higherDiscard - number of discarded latencies which are higher than maximum latency.
      slc1 - Sliding Latency Coverage factor
      slc2 - Sliding Latency Coverage factor
      percentileLatencies - Array of percentile latency Values.
      percentileLatencyCounts - Array of percentile latency Counts.
    • printTotal

      public final void printTotal(double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
      Specified by:
      printTotal in interface io.perl.logger.PerformanceLogger
      Overrides:
      printTotal in class io.perl.logger.impl.ResultsLogger
    • printTotal

      public void printTotal(int writers, int maxWriters, int readers, int maxReaders, long writeRequestBytes, double writeRequestMbPerSec, long writeRequestRecords, double writeRequestRecordsPerSec, long readRequestBytes, double readRequestsMbPerSec, long readRequestRecords, double readRequestRecordsPerSec, long writeResponsePendingRecords, long writeResponsePendingBytes, long readResponsePendingRecords, long readResponsePendingBytes, long writeReadRequestPendingRecords, long writeReadRequestPendingBytes, long writeTimeoutEvents, double writeTimeoutEventsPerSec, long readTimeoutEvents, double readTimeoutEventsPerSec, double seconds, long bytes, long records, double recsPerSec, double mbPerSec, double avgLatency, long minLatency, long maxLatency, long invalid, long lowerDiscard, long higherDiscard, long slc1, long slc2, long[] percentileLatencies, long[] percentileLatencyCounts)
      Description copied from interface: RWLogger
      Specified by:
      printTotal in interface RWLogger
      Parameters:
      writers - number of active writers
      maxWriters - maximum writers seen
      readers - number of active readers
      maxReaders - maximum readers seen
      writeRequestBytes - total write request bytes
      writeRequestMbPerSec - write request throughput in MB/sec
      writeRequestRecords - total write request count
      writeRequestRecordsPerSec - write requests per second
      readRequestBytes - total read request bytes
      readRequestsMbPerSec - read request throughput in MB/sec
      readRequestRecords - total read request count
      readRequestRecordsPerSec - read requests per second
      writeResponsePendingRecords - pending write response records
      writeResponsePendingBytes - pending write response bytes
      readResponsePendingRecords - pending read response records
      readResponsePendingBytes - pending read response bytes
      writeReadRequestPendingRecords - write-read pending records delta
      writeReadRequestPendingBytes - write-read pending bytes delta
      writeTimeoutEvents - write timeout events count
      writeTimeoutEventsPerSec - write timeout events per second
      readTimeoutEvents - read timeout events count
      readTimeoutEventsPerSec - read timeout events per second
      seconds - total time in seconds
      bytes - total bytes processed
      records - total records processed
      recsPerSec - records per second
      mbPerSec - MB per second
      avgLatency - average latency
      minLatency - minimum latency
      maxLatency - maximum latency
      invalid - invalid/negative latency count
      lowerDiscard - discarded below min latency
      higherDiscard - discarded above max latency
      slc1 - sliding latency coverage 1
      slc2 - sliding latency coverage 2
      percentileLatencies - percentile latency values
      percentileLatencyCounts - percentile latency counts