Skip to main content

Load-test scenarios

The load-test scenario subsystem is a telemetry-fidelity instrument. You arm a bounded experiment over a set of simulated devices, run it for a fixed window, and get back an exact, machine-readable report of what nl6 sent. Diff that sent-ledger against what your monitor received and any delta localizes missed or duplicated telemetry — fidelity in both directions.

nl6 owns the ground truth: its send count is exact and, with a fixed seed, reproducible. So the report is the authority — a shortfall is real wire/collector loss, not measurement noise.

The idea

arm run [T0,T1) stop
connect, stay silent → gated push only → finalize report
│ │ │
nothing on the wire exactly what nl6 immutable sent-ledger
(measurement pre-roll) emits, counted at send you diff vs received
  • Bounded window. A scenario suppresses background telemetry for its participants, emits only during [T0,T1), then finalizes an immutable report.
  • A sent-ledger, not a guess. Every record is counted at the send site into exactly one bucket (in_window / drain / send_failures / dropped / suppressed_pre_window); sent = in_window + drain is the reconciliation denominator.
  • Seven protocols, one shape. Any one of syslog · SNMP trap/inform · NetFlow v5/v9 · IPFIX · sFlow · gNMI dial-out — one active scenario at a time. Each device opts in via its own export config; the scenario gates whichever protocol it targets.
  • Localize, don't just total. The report splits in-window sends into equal time sub-windows (loss localization) and tags each run per protocol so you can isolate it on a shared collector.

Where to go next

PageWhat it covers
REST APIEvery endpoint, request/response shape, and error code.
ScenariosThe operating guide — lifecycle, fidelity mode, run tagging, reconciliation, troubleshooting.
RunbooksCopy-pasteable worked recipes, one per use case.
Report schemaEvery field, the ledger identity, loss localization, and the semver policy.

New to it? Walk the lifecycle, then pick a matching runbook. There is a runnable end-to-end example under examples/scenario-syslog-fidelity/ — a compose stack (nl6 + a counting collector) and a run.sh that reproduces a documented known result.

Limits

  • One active scenario at a time.
  • In-memory only — a scenario, its ledger, and its report do not survive a restart; fetch the report before restarting. See Scenarios → Non-goal.