Reports
rk run-flow -output json and rk run-suite -output json write a report. This page lists its main fields, and the rk report commands that read reports.
Flow report
| Field | What it holds |
|---|---|
flow_name, execution_id, dut, simulated_nfs | what ran |
verdict | pass, fail or unsupported: the field to act on |
verdict_reasons | why the verdict isn't pass |
all_passed | no check failed; not the same as verdict |
duration | wall time, in nanoseconds |
metrics | counters and latencies, below |
workload | the run's shape: repetitions, rate, duration, timeout, ramp, hold, catchup |
steps, event_log | each UE's transitions |
msg_types | messages sent and received, per protocol and type |
rx_events | events received |
final_state_counts | how many UEs ended in each state |
post_checks, final_checks | check results |
uplane_report | user-plane results |
time_series | per-interval starts, completions, failures, in-flight UEs, CPU and memory |
bus_audit | inbound messages refused, dropped or shed |
load | a stepped load run's steps and knee; see Load runs |
error | why the run errored |
Metrics
Always present:
- Flows:
flows_started,flows_completed,flows_succeeded,flows_failed,flows_timed_out,success_rate,timeout_pct. - Traffic:
tx_messages,rx_messages,tx_bytes,rx_bytes. - Flow latency:
avg_latency_ms,min_latency_ms,max_latency_ms,p50_latency_ms,p95_latency_ms,p99_latency_ms. - Message round-trip:
avg_rtt_ms,min_rtt_ms,max_rtt_ms,p50_rtt_ms,p95_rtt_ms,p99_rtt_ms. - Checks:
checks_total,checks_passed,checks_failed. - Shedding:
overload_shed.
Per protocol: <protocol>_tx_messages, <protocol>_rx_messages, the byte counts, and <protocol>_{avg,min,max,p50,p95,p99}_rtt_ms. Load runs add the start-schedule and user-plane keys.
Suite report
One object per cycle, or an array when the suite ran several cycles:
| Field | What it holds |
|---|---|
suite_name, suite_execution_id, started_at, duration | what ran |
outcome | pass, fail or unsupported: the field to act on |
steps_passed, steps_failed, steps_unsupported, aborted | the step tally |
step_results | each step's flow report |
step_outcomes | each step's grade |
final_checks, metrics, message_types, findings | the suite as a whole |
rk report summarize
One row per load step. A run without load is one row. Columns:
- Starts: planned and achieved starts.
- Results: success, failures, timeouts, missed starts.
- Latency: flow and message latency percentiles, time to hold.
- User plane and the message bus.
- Resources:
rk's CPU and memory, the peer's. - Outcome: the verdict and
stop_when.
Markdown adds one outcome line per run. Give flags before the report files: flags after the first file aren't read.
rk report compare
Pairs runs and load steps, matching steps by rate. For each pair it shows before, after and the change in %:
- achieved starts per second, success %;
- flow p50 and p99, message p99;
- bus shedding;
- CPU, CPU per start, peak memory;
- the verdict.
rk host sample and rk report hosts
Measure the hosts around a run, then attribute it per step:
rk host sample writes one JSON line per interval (-interval, default 1s). Each line has:
- host CPU, including steal, and load average;
- per-process CPU and threads (
-pid name=pid, or-pids-dir); -nstatcounters and-netdevinterface counters.
It runs until -duration ends or a signal arrives.
rk report hosts shows each host's figures over each load step. With -max-cell-steal <pct>, it exits 6 if a host's CPU steal over the whole run was above the cap: the measurement was disturbed by the host, not the core.