public class HistogramLogWriter extends Object
A Histogram logs are used to capture full fidelity, per-time-interval histograms of a recorded value.
For example, a histogram log can be used to capture high fidelity reaction-time logs for some measured system or subsystem component. Such a log would capture a full reaction time histogram for each logged interval, and could be used to later reconstruct a full HdrHistogram of the measured reaction time behavior for any arbitrary time range within the log, by adding [only] the relevant interval histograms.
This log writer will produce histogram logs that adhere to the
histogram log format (see {HistogramLogReader
for log format
details). Optional comments, start time, legend, and format version
can be logged.
The log writer will use the
By convention, it is typical for the logging application to use a comment to indicate the logging application at the head of the log, followed by the log format version, a start time, and a legend (in that order).
Constructor | Description |
---|---|
HistogramLogWriter(File outputFile) |
Constructs a new HistogramLogWriter that will write into the specified file.
|
HistogramLogWriter(OutputStream outputStream) |
Constructs a new HistogramLogWriter that will write into the specified output stream.
|
HistogramLogWriter(PrintStream printStream) |
Constructs a new HistogramLogWriter that will write into the specified print stream.
|
HistogramLogWriter(String outputFileName) |
Constructs a new HistogramLogWriter around a newly created file with the specified file name.
|
Modifier and Type | Method | Description |
---|---|---|
void |
close() |
Closes the file or output stream for this log writer.
|
long |
getBaseTime() |
return the current base time offset (see
setBaseTime(long) ). |
void |
outputBaseTime(long baseTimeMsec) |
Log a base time in the log.
|
void |
outputComment(String comment) |
Log a comment to the log.
|
void |
outputIntervalHistogram(double startTimeStampSec,
double endTimeStampSec,
EncodableHistogram histogram) |
Output an interval histogram, with the given timestamp information, and the [optional] tag
associated with the histogram.
|
void |
outputIntervalHistogram(double startTimeStampSec,
double endTimeStampSec,
EncodableHistogram histogram,
double maxValueUnitRatio) |
Output an interval histogram, with the given timestamp information and the [optional] tag
associated with the histogram, using a configurable maxValueUnitRatio.
|
void |
outputIntervalHistogram(EncodableHistogram histogram) |
Output an interval histogram, using the start/end timestamp indicated in the histogram,
and the [optional] tag associated with the histogram.
|
void |
outputLegend() |
Output a legend line to the log.
|
void |
outputLogFormatVersion() |
Output a log format version to the log.
|
void |
outputStartTime(long startTimeMsec) |
Log a start time in the log.
|
void |
setBaseTime(long baseTimeMsec) |
Set a base time to subtract from supplied histogram start/end timestamps when
logging based on histogram timestamps.
|
public HistogramLogWriter(String outputFileName) throws FileNotFoundException
outputFileName
- The name of the file to createFileNotFoundException
- when unable to open outputFileNamepublic HistogramLogWriter(File outputFile) throws FileNotFoundException
outputFile
- The File to write toFileNotFoundException
- when unable to open outputFilepublic HistogramLogWriter(OutputStream outputStream)
outputStream
- The OutputStream to write topublic HistogramLogWriter(PrintStream printStream)
printStream
- The PrintStream to write topublic void close()
public void outputIntervalHistogram(double startTimeStampSec, double endTimeStampSec, EncodableHistogram histogram, double maxValueUnitRatio)
startTimeStampSec
- The start timestamp to log with the interval histogram, in seconds.endTimeStampSec
- The end timestamp to log with the interval histogram, in seconds.histogram
- The interval histogram to log.maxValueUnitRatio
- The ratio by which to divide the histogram's max value when reporting on it.public void outputIntervalHistogram(double startTimeStampSec, double endTimeStampSec, EncodableHistogram histogram)
startTimeStampSec
- The start timestamp to log with the interval histogram, in seconds.endTimeStampSec
- The end timestamp to log with the interval histogram, in seconds.histogram
- The interval histogram to log.public void outputIntervalHistogram(EncodableHistogram histogram)
setBaseTime(long)
).
The default base time is 0.
By covention, histogram start/end time are generally stamped with absolute times in msec
since the epoch. For logging with absolute time stamps, the base time would remain zero. For
logging with relative time stamps (time since a start point), the base time should be set
with setBaseTime(long)
.
The max value in the histogram will be reported scaled down by a default maxValueUnitRatio of 1,000,000 (which is the msec : nsec ratio). Caller should use the direct form specifying maxValueUnitRatio if some other ratio is needed for the max value output.
histogram
- The interval histogram to log.public void outputStartTime(long startTimeMsec)
startTimeMsec
- time (in milliseconds) since the absolute start time (the epoch)public void outputBaseTime(long baseTimeMsec)
baseTimeMsec
- time (in milliseconds) since the absolute start time (the epoch)public void outputComment(String comment)
comment
- the comment string.public void outputLegend()
public void outputLogFormatVersion()
public void setBaseTime(long baseTimeMsec)
baseTimeMsec
- base time to calculate timestamp deltas frompublic long getBaseTime()
setBaseTime(long)
).Copyright © 2019. All rights reserved.