Skip to content
This repository has been archived by the owner on Feb 28, 2023. It is now read-only.

rodaine/x-files-rate

Repository files navigation

x-files-rate

An example program for the blog post The X-Files: Controlling Throughput with rate.Limiter, demonstrating various techniques for rate limiting an HTTP service via middleware.

Use

Bootstrap

go get github.com/rodaine/x-files-rate

Run

Each rate-limiting middleware can be tested with ever-increasing RPS via vegeta using a customized vegeta test harness. The target names for the middleware can be found in middleware.go. Results are printed to stdout and also stored in ./results/{{target}}.csv.

./run.sh        # defaults to no rate-limiter
./run.sh ticker # targets the "ticker" middleware 

Plot

The output CSV can be converted to SVG graphs using gnuplot. The SVG files are persisted in ./results/plots/{{target}}.svg.

./plot.sh ticker

Releases

No releases published

Packages

No packages published