Skip to main content

JSON report

vegaload run -out report.json writes a JSON summary of the run. vegaload compare, -baseline and vegaload diagnose read this file.

All times are whole numbers of nanoseconds. Names end in _ns. A rate such as error_rate is a fraction: 0.02 is 2%.

Some sections appear only when they apply. This page was checked against real 0.9.0 files.

Top level​

FieldMeaning
executorThe load shape, such as fixed-vus.
started_atWhen the run started, as a UTC timestamp.
elapsed_nsHow long the run took.
totalNumber of iterations or calls counted.
failedHow many of them failed.
error_ratefailed divided by total.
latencyThe latency summary. See below.
time_seriesThe run, cut into slices over time.
thresholdsEach threshold and its result. Present when you set thresholds.
thresholds_passedtrue if every threshold passed.
baselineThe result of the baseline gate. Present with -baseline.
stepsResults for each named step(). Present when the scenario uses steps.
protocolsResults for each protocol the run used.
checksPass and fail counts for each check. Present when the scenario uses checks.

latency​

The same fields appear in steps and protocols.

FieldMeaning
min_ns, mean_ns, max_nsFastest, average and slowest call.
p50_ns, p90_ns, p95_ns, p99_nsPercentiles. p95_ns means 95% of calls were this fast or faster.

time_series[]​

FieldMeaning
offset_nsWhere this slice starts, counted from the start of the run.
requestsCalls in this slice.
failedFailed calls in this slice.
rpsCalls per second in this slice.
error_rateFailure fraction in this slice.

thresholds[]​

FieldMeaning
nameThe threshold as you wrote it.
metricThe metric, such as p95.
operatorThe comparison, such as <.
valueThe limit, as text, such as 500ms.
observedWhat the run measured, as text.
passedtrue or false.
stepThe step the threshold is limited to. Present only for a step threshold.
protocolThe protocol the threshold is limited to. Present only for a protocol threshold.

baseline​

FieldMeaning
pathThe baseline file you gave.
max_regression_percentThe slack you allowed.
passedtrue if no metric regressed beyond the slack.
metrics[]One entry for error_rate and one for latency.p95. Each has name, baseline, candidate, unit and regressed.
notes[]A plain sentence about the result.

steps[]​

FieldMeaning
nameThe step name.
totalHow many times the step ran.
failedHow many runs failed.
error_rateThe failure fraction.
latencyThe latency summary.

protocols[]​

FieldMeaning
nameThe protocol, such as http.
total, failed, error_rateCounts and failure fraction for this protocol.
latencyThe latency summary.
bytes_sent, bytes_receivedBytes moved.
bytes_per_secondThroughput.
operations[]One entry per kind of call, such as GET. Each has name, total, failed, error_rate, latency, bytes_sent and bytes_received.

checks[]​

FieldMeaning
nameThe check name.
passesHow many times it passed.
failsHow many times it failed.

Example​

A short run with one step and one check, trimmed:

{
"executor": "fixed-vus",
"total": 224,
"failed": 0,
"error_rate": 0,
"latency": { "p50_ns": 26642194, "p95_ns": 40212388 },
"thresholds": [
{ "name": "p95 < 500ms", "metric": "p95", "operator": "<",
"value": "500ms", "observed": "40.22ms", "passed": true }
],
"thresholds_passed": true,
"steps": [{ "name": "list", "total": 224, "failed": 0 }],
"checks": [{ "name": "status is 200", "passes": 224, "fails": 0 }]
}

To compare two reports, see Compare two runs. To explain one, see Explain a run.