http-sink

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.

Live Traffic Stats

0
-30s-15snow
PathMethodRPS

Response time

PathCountp50 (ms)p75 (ms)p90 (ms)p95 (ms)p99 (ms)Max (ms)

Packet Inspection

TimeMethodPathStatusResponse time (ms)Remote addressUser agentHeadersBody

updating...

Latency and Failure Injection

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 parameterHeaderExampleEffect
sinkDelayX-Sink-Delay?sinkDelay=250msFixed delay. Also 1.5s, a number of ms, or a random range like 50ms-300ms. Max 10s.
sinkStatusX-Sink-Status?sinkStatus=503Respond 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.

Configured rules

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.

PathDelayStatus

Project

View on GitHub

Run locally

docker run --name http-sink -p 38080:38080 -it  jecklgamis/http-sink:main