| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import Histogram, { BitBucketSize } from "./Histogram";
- /**
- * A histogram log reader.
- * <p>
- * Histogram logs are used to capture full fidelity, per-time-interval
- * histograms of a recorded value.
- * <p>
- * 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.
- * <h3>Histogram log format:</h3>
- * A histogram log file consists of text lines. Lines beginning with
- * the "#" character are optional and treated as comments. Lines
- * containing the legend (starting with "Timestamp") are also optional
- * and ignored in parsing the histogram log. All other lines must
- * be valid interval description lines. Text fields are delimited by
- * commas, spaces.
- * <p>
- * A valid interval description line contains an optional Tag=tagString
- * text field, followed by an interval description.
- * <p>
- * A valid interval description must contain exactly four text fields:
- * <ul>
- * <li>StartTimestamp: The first field must contain a number parse-able as a Double value,
- * representing the start timestamp of the interval in seconds.</li>
- * <li>intervalLength: The second field must contain a number parse-able as a Double value,
- * representing the length of the interval in seconds.</li>
- * <li>Interval_Max: The third field must contain a number parse-able as a Double value,
- * which generally represents the maximum value of the interval histogram.</li>
- * <li>Interval_Compressed_Histogram: The fourth field must contain a text field
- * parse-able as a Base64 text representation of a compressed HdrHistogram.</li>
- * </ul>
- * The log file may contain an optional indication of a starting time. Starting time
- * is indicated using a special comments starting with "#[StartTime: " and followed
- * by a number parse-able as a double, representing the start time (in seconds)
- * that may be added to timestamps in the file to determine an absolute
- * timestamp (e.g. since the epoch) for each interval.
- */
- declare class HistogramLogReader {
- startTimeSec: number;
- baseTimeSec: number;
- lines: string[];
- currentLineIndex: number;
- bitBucketSize: BitBucketSize;
- useWebAssembly: boolean;
- constructor(logContent: string, bitBucketSize?: BitBucketSize, useWebAssembly?: boolean);
- /**
- * Read the next interval histogram from the log. Returns a Histogram object if
- * an interval line was found, or null if not.
- * <p>Upon encountering any unexpected format errors in reading the next interval
- * from the file, this method will return a null.
- * @return a DecodedInterval, or a null if no appropriate interval found
- */
- nextIntervalHistogram(rangeStartTimeSec?: number, rangeEndTimeSec?: number): Histogram | null;
- private parseStartTimeFromLine;
- private parseBaseTimeFromLine;
- }
- export declare const listTags: (content: string) => string[];
- export default HistogramLogReader;
|