latreport
The latreport command generates latency reports from binary latency files produced by StatsLatencyWriter. It reads the binary data, computes percentile breakdowns per sample bucket, and writes the results to CSV or Excel format.
Usage
rumi tools latreport [options]Options
-h, --help
Show help message
-f, --inputfile <file>
(Required) Path to the input binary latency file
-o, --outputfile <file>
Output file path (default: same directory and base name as input file)
-t, --title <title>
Report title (default: output file base name)
-w, --warmup <count>
Number of initial data points to skip as warmup
-m, --maxval <value>
Violation threshold value. Data points exceeding this value are counted as violations
-s, --samplesize <size>
Number of data points per sample bucket
-c, --cfg <file>
Path to an XML configuration file for advanced settings
--bucketcnt <count>
Number of frequency map buckets for histogram generation
--stddev
Enable standard deviation calculation
--processors <count>
Number of reader threads for parallel processing
--writepoint <value>
Write point interval for filtering write-induced latency spikes
--prewritewarmup <count>
Number of data points to exclude before each write point
--postwritewarmup <count>
Number of data points to exclude after each write point
--format <csv|xlsx>
Output format (default: csv)
Examples
Basic Report
Generate a CSV report from a latency file:
Output:
The output file is created in the same directory as the input file, with the same base name and a .csv extension.
Custom Output File
Specify an output file path:
The appropriate extension (.csv or .xlsx) is appended automatically.
With Warmup and Sample Size
Skip the first 100,000 data points as warmup and use 10,000-point sample buckets:
Excel Output
Generate an Excel report with charts and histograms:
Write Point Filtering
When the application under test performs periodic writes (e.g., every 1,000,000 messages), the latency around the write point is typically elevated. Use --writepoint, --prewritewarmup, and --postwritewarmup to exclude these data points from the report:
CSV Output Format
The CSV output contains one header row followed by one row per sample bucket. Each row includes:
Title
Sample bucket identifier (start row - end row)
Mean
Average latency for the bucket
StdDev
Standard deviation (if enabled)
50thP
50th percentile (median)
75thP
75th percentile
90thP
90th percentile
99thP
99th percentile
99.9thP
99.9th percentile
99.99thP
99.99th percentile
99.999thP
99.999th percentile
99.9999thP
99.9999th percentile
Max
Maximum value in the bucket
NoViolations
Number of data points exceeding the violation threshold
Excel Output Format
The Excel output (--format xlsx) includes:
Latencies sheet - Percentile data (same columns as CSV), run metadata, violation charts, and configurable scatter plots
Histogram sheet - Latency frequency distribution with bar charts showing both linear and logarithmic scales
Configuration File
For advanced configuration, use the -c option to specify an XML configuration file. The configuration file controls default values for input processing, output formatting, and graph generation.
Key configuration sections:
Input.Sampling.SampleSize
Default sample bucket size
Input.Sampling.MaxDataPointValue
Default violation threshold
Input.Sampling.WarmupDataPoints
Default warmup count
Input.Reading.BufferSize
File read buffer size
Input.Reading.ReaderThreads
Default thread count for parallel processing
Output.Format
Default output format (csv or xlsx)
Output.Control.Buckets
Default frequency histogram bucket count
Output.Control.IncludeStdDev
Whether to calculate standard deviation by default
Output.Graphing.Graph
Graph definitions for Excel output
Command-line options override configuration file values.
Binary File Formats
The tool automatically detects the latency file format:
V1 format - 8 bytes per entry (4-byte index + 4-byte latency value)
V2 format - 4 bytes per entry (latency value only, index inferred from position)
See Also
tools - Tools overview
Engine Stats - Engine metrics and timing data
Last updated