rodaine / x-files-rate

golang.org/x/time/rate example application

Home Page:http://rodaine.com/2017/05/x-files-time-rate-golang/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

golang.org/x/time/rate example application

http://rodaine.com/2017/05/x-files-time-rate-golang/

License:The Unlicense


Languages

Language:Go 80.1%Language:Shell 19.9%