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. That is 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 + drainis the reconciliation denominator. - Seven protocols, one shape. Any one of syslog · SNMP trap/inform · NetFlow v5/v9 · IPFIX · sFlow · gNMI dial-out. Up to 8 scenarios run concurrently, with exclusivity per device. 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
| Page | What it covers |
|---|---|
| REST API | Every endpoint, request/response shape, and error code. |
| Scenarios | The operating guide: lifecycle, fidelity mode, run tagging, reconciliation, troubleshooting. |
| Runbooks | Copy-pasteable worked recipes, one per use case. |
| Report schema | Every field, the ledger identity, loss localization, and the semver policy. |
| Collector ceiling | Method for measuring what a collector actually accepts, and not mistaking a drain rate for a capacity. |
New to it?
Walk the lifecycle, then pick a matching runbook.
There is a runnable end-to-end example under examples/scenario-syslog-fidelity/.
It holds a compose stack (nl6 + a counting collector) and a run.sh that reproduces a documented known result.
Limits
- Up to 8 concurrent scenarios, each over one protocol. Exclusivity is per device: a device claimed by one scenario is refused at another scenario's
arm. The 8 most recent terminal scenarios stay listed and queryable; older ones are reaped. - In-memory only. A scenario, its ledger, and its report do not survive a restart; fetch the report before restarting. See Scenarios → Fetch the report before restarting.