TUI Guide¶
Gossipper now includes an interactive terminal UI that lets an operator:
- choose launch parameters without building a long CLI command
- start client or server scenarios from built-in or XML-based profiles
- watch live SIPp-like runtime statistics
- change target CPS during a running client-side load test
Launch¶
Run the TUI with either command (installed binary: gossipper tui / gossipper -interactive):
go run ./cmd/gossip tui
go run ./cmd/gossip -interactive
Do not use gossipper sipp tui — the sipp prefix is only for SIPp-style
scenario flags. Use gossipper tui (see cli.md).
Launch Screen¶
The first screen is the interactive launcher. It exposes the most useful runtime fields from the current CLI:
ModeProfileTransportRemote addrLocal IP/Local portServiceCPSCallsMax concurrentUsers- auth fields
Custom XMLHEP addr- trace toggles such as
trace_stat,trace_rtt,trace_msg, andtrace_err
Gossipper interactive launcher
┌──────────────────────────── Gossipper TUI ────────────────────────────┐
│ Mode: client │
│ Profile: builtin-uac (uac) │
│ Transport: u1 │
│ Remote addr: 127.0.0.1:5060 │
│ Local IP: 0.0.0.0 │
│ Local port: 0 │
│ Service: service │
│ CPS: 10 │
│ Calls: 100 │
│ Max concurrent: 10 │
│ Users: 1 │
│ Auth user: alice │
│ Auth pass: secret │
│ Custom XML: │
│ HEP addr: 127.0.0.1:9060 │
│ [x] trace_stat [ ] trace_rtt [x] trace_msg [ ] trace_err │
├───────────────────────────────────────────────────────────────────────┤
│ [Start] [Quit] │
└───────────────────────────────────────────────────────────────────────┘
Runtime Screen¶
After pressing Start, the TUI switches to the runtime dashboard. This screen
is designed to mirror the operator feel of SIPp and currently shows:
- selected profile, mode, and transport
- target CPS
- measured average CPS
- measured last-interval CPS
- total, active, successful, and failed calls
- average call duration
- average invite RTT
- failure counters including
timeoutandcancelled - transport / parse / scenario failure classes
- RTP / RTCP counters
- current run status text
┌──────────────────────────── Runtime Stats ────────────────────────────┐
│ Profile: builtin-uac │
│ Mode: client │
│ Transport: u1 │
│ State: running │
│ │
│ Target CPS: 15.00 │
│ Measured CPS(avg): 14.72 │
│ Measured CPS(1s): 15.00 │
│ │
│ Calls: total=320 active=12 success=305 failed=3 │
│ Latency: avg_call=1.24s avg_invite=82ms │
│ Failures: timeout=1 cancelled=1 unexpected=0 transport=1 parse=0 │
│ scenario=0 │
│ Media: rtp_sent=6400 rtp_recv=6100 rtcp_sr=120 rtcp_rr=118 │
│ rtcp_in=118 │
│ │
│ Status: Target CPS set to 15.00 │
└───────────────────────────────────────────────────────────────────────┘
Keys: +/- change CPS, p pause/resume, q stop run, Esc back after finish
Keyboard Controls¶
During a client-side run, the following hotkeys are supported:
+/=: increase target CPS-: decrease target CPSp: pause or resume scheduling of new callsq: stop scheduling new calls and let active calls drainEsc: return to the launcher after the run has finished
For server-mode runs, the dashboard remains useful for live stats, but dynamic CPS control is naturally only meaningful for client-side traffic generation.
Notes¶
Profileis currently an operator preset layer on top of existing built-in scenarios and repository XML fixtures.- The runtime dashboard is driven by the same
stats.Snapshot()data that the non-interactive CLI uses for summary output. - Dynamic CPS changes are applied without restarting
Gossipper.