Class HistogramLogProcessor

java.lang.Object
java.lang.Thread
org.HdrHistogram.HistogramLogProcessor
All Implemented Interfaces:
Runnable

public class HistogramLogProcessor extends Thread
HistogramLogProcessor will process an input log and [can] generate two separate log files from a single histogram log file: a sequential interval log file and a histogram percentile distribution log file.

The sequential interval log file logs a single stats summary line for each reporting interval.

The histogram percentile distribution log file includes a detailed percentiles and fine grained distribution of the entire log file range processed.

HistogramLogProcessor will process an input log file when provided with the -i <filename> option. When no -i option is provided, standard input will be processed.

When provided with an output file name <logfile> with the -o option (e.g. "-o mylog"), HistogramLogProcessor will produce both output files under the names <logfile> and <logfile>.hgrm (e.g. mylog and mylog.hgrm).

When not provided with an output file name, HistogramLogProcessor will produce [only] the histogram percentile distribution log output to standard output.

By default, HistogramLogProcessor only processes hlog file lines lines with no tag specified [aka "default tagged" lines]. An optional -tag parameter can be used to process lines of a [single] specific tag. The -listtags option can be used to list all the tags found in the input file.

HistogramLogProcessor accepts optional -start and -end time range parameters. When provided, the output will only reflect the portion of the input log with timestamps that fall within the provided start and end time range parameters.

HistogramLogProcessor also accepts and optional -csv parameter, which will cause the output formatting (of both output file forms) to use a CSV file format.

  • Constructor Details

    • HistogramLogProcessor

      public HistogramLogProcessor(String[] args) throws FileNotFoundException
      Construct a HistogramLogProcessor with the given arguments (provided in command line style).
       [-h]                                                        help
       [-csv]                                                      Use CSV format for output log files
       [-i logFileName]                                            File name of Histogram Log to process (default is standard input)
       [-o outputFileName]                                         File name to output to (default is standard output)
                                                                   (will replace occurrences of %pid and %date with appropriate information)
       [-tag tag]                                                  The tag (default no tag) of the histogram lines to be processed\n
       [-start rangeStartTimeSec]                                  The start time for the range in the file, in seconds (default 0.0)
       [-end rangeEndTimeSec]                                      The end time for the range in the file, in seconds (default is infinite)
       [-correctLogWithKnownCoordinatedOmission expectedInterval]  When the supplied expected interval i is than 0, performs coordinated
                                                                   omission correction on the input log's interval histograms by adding
                                                                   missing values as appropriate based on the supplied expected interval
                                                                   value i (in whatever units the log histograms were recorded with). This
                                                                   feature should only be used when the input log is known to have been
                                                                   recorded with coordinated omissions, and when an expected interval is known.
       [-outputValueUnitRatio r]                                   The scaling factor by which to divide histogram recorded values units
                                                                   in output. [default = 1000000.0 (1 msec in nsec)]"
       
      Parameters:
      args - command line arguments
      Throws:
      FileNotFoundException - if specified input file is not found
  • Method Details

    • run

      public void run()
      Run the log processor with the currently provided arguments.
      Specified by:
      run in interface Runnable
      Overrides:
      run in class Thread
    • main

      public static void main(String[] args)
      main() method.
      Parameters:
      args - command line arguments