Relax, sink it.
A simple request sink that accepts any method or subpath under /sink, echoes it back, and lets you simulate latency and failures while watching live traffic stats.
| Path | Method | RPS |
|---|
| Path | Count | p50 (ms) | p75 (ms) | p90 (ms) | p95 (ms) | p99 (ms) | Max (ms) |
|---|
| Time | Method | Path | Status | Response time (ms) | Remote address | User agent | Headers | Body |
|---|
updating...
Make a single request slow or failing by adding parameters to its URL (or sending the matching headers). Nothing is stored on the server, so everyone sharing this instance can inject independently.
| Query parameter | Header | Example | Effect |
|---|---|---|---|
sinkDelay | X-Sink-Delay | ?sinkDelay=250ms | Fixed delay. Also 1.5s, a number of ms, or a random range like 50ms-300ms. Max 10s. |
sinkStatus | X-Sink-Status | ?sinkStatus=503 | Respond with this status (400-599) instead of 200. |
| Probability lists | ?sinkStatus=503:10,429:5?sinkDelay=50ms:90,2s:10 | Each value:percent is the chance that value is used (they must add up to at most 100); the rest of the requests are left alone. | |
Operators can also configure rules for exact paths in a rules file loaded at startup, for clients that can't change their URL or headers. They are read-only here, and a request's own parameters override them.
| Path | Delay | Status |
|---|
docker run --name http-sink -p 38080:38080 -it jecklgamis/http-sink:main