Skip to content

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

FieldWhat it holds
flow_name, execution_id, dut, simulated_nfswhat ran
verdictpass, fail or unsupported: the field to act on
verdict_reasonswhy the verdict isn't pass
all_passedno check failed; not the same as verdict
durationwall time, in nanoseconds
metricscounters and latencies, below
workloadthe run's shape: repetitions, rate, duration, timeout, ramp, hold, catchup
steps, event_logeach UE's transitions
msg_typesmessages sent and received, per protocol and type
rx_eventsevents received
final_state_countshow many UEs ended in each state
post_checks, final_checkscheck results
uplane_reportuser-plane results
time_seriesper-interval starts, completions, failures, in-flight UEs, CPU and memory
bus_auditinbound messages refused, dropped or shed
loada stepped load run's steps and knee; see Load runs
errorwhy 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:

FieldWhat it holds
suite_name, suite_execution_id, started_at, durationwhat ran
outcomepass, fail or unsupported: the field to act on
steps_passed, steps_failed, steps_unsupported, abortedthe step tally
step_resultseach step's flow report
step_outcomeseach step's grade
final_checks, metrics, message_types, findingsthe suite as a whole

rk report summarize

Shell

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

Shell

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:

Shell

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);
  • -nstat counters and -netdev interface 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.