sendit
A flexible traffic generator for HTTP, browser, DNS, and WebSocket targets. Polite by design — every request is paced, rate-limited, and resource-gated before dispatch.
Open Source MIT Licensed.
Key features
sendit runs across all four major web protocols with configurable pacing and built-in courtesy limits so it never hammers targets or the local machine.
Four driver types
Send real traffic over HTTP/HTTPS, headless browser (chromedp), DNS (miekg/dns), and WebSocket — all from one config file.
Three pacing modes
human (random delay), rate_limited (token bucket), and scheduled (cron windows) — traffic that looks exactly like you want it to.
Polite by design
Per-domain token buckets, decorrelated jitter backoff on errors, and CPU/RAM resource gates ensure sendit never overwhelms targets or your machine.
Graceful shutdown
Waits for all in-flight requests to complete on SIGINT/SIGTERM before exiting. No dropped results.
Hot reload
Send SIGHUP (or run sendit reload) to atomically swap targets, weights, and rate limits without restarting the process.
Prometheus metrics
Optional Prometheus scrape endpoint exposes request counts, error rates, latency histograms, and bytes read — all labelled by driver type.
Probe & Pinch
sendit probe tests HTTP/DNS endpoints in a loop like ping — no config needed. sendit pinch checks TCP/UDP port connectivity on any host:port. Both print per-check latency and a summary on Ctrl-C.