speedscaleCLI tool is used to record and inspect application traffic to locally running applications.
cURLand Postman can give us external request / response data but fall short of capturing requests made from the application itself. Also getting from code to a working curl command can be tedious.
speedscaleis able to gain greater insight by running your application inside a docker container and intercepting all of the requests going in and out.
speedscaledoes more while providing a contextual view of your application traffic.
speedscalerecords the raw request / response data, along with metadata like request latency, encoding, detected technologies, etc. This allows you to get to the specific bits of your network requests, but at a higher level than looking at packets and TCP streams in Wireshark.
speedscalesupports a few architectural modes for traffic capture. If your application is containerized, using docker mode will be the easiest option. If you want to run your application natively on the desktop proxy mode is required.
speedscaleruns your application alongside the proxy container and requests are transparently proxied to and from your container via some Docker network magic. This mode automatically captures inbound requests to your application and outbound requests from your application to other services.
http_clientmust be modified to call the
speedscaleport (usually 4143). In the example of
curlthat means calling
curl http://localhost:4140instead of
https_proxyenvironment variables may be set to capture outbound requests, otherwise outbound requests will be made directly. Copy/paste-ready instructions are provided by the
speedscale start capturecommand for setting the appropriate environment variables. Please remember to set the environment variables in the same context (terminal window) as your application.
speedscale, which will update the binary in your
speedscaleand answer the questions that follow.
speedscaleis to ensure capture containers are removed and delete the standalone binary.
speedscaletouches which we've detailed here in case just removing the
speedscalebinary is not enough.
speedscaledoes require access to the Docker socket to run and may create or delete docker resources. Running
speedscale stop captureshould clean up docker resources but take a look at
docker ps --allto list any remaining containers.
$HOME/.speedscaledirectory to store configuration, binaries, data, etc. Removing this directory will remove all Speedscale related files. Be careful with this operation if you plan to continue to interact with
speedscale --helpor add
--helpto the end of any command for details on that command.
command not found: speedscalethen ensure the speedscale directory (
~/.speedscale) has been added to your