explaingit

vadimsemenykv/saboteur

157Go

TLDR

Saboteur is a small proxy program that sits between your application and another service it talks to over HTTP.

Mindmap

A visual breakdown will appear here once this repo is fully enriched.

In plain English

Saboteur is a small proxy program that sits between your application and another service it talks to over HTTP. Its job is to break things on purpose. You point your traffic at Saboteur on port 8080, it forwards the requests to the real service, and along the way it can inject faults such as delays, error responses, dropped connections, corrupted bodies, or rate-limited streaming. A separate web UI and API on port 8081 lets you create and toggle the rules that decide when faults fire. The README describes it as an HTTP-layer fault injection proxy and calls out the contrast with Toxiproxy, which works at the TCP level. Because Saboteur understands HTTP, the matching rules can look at things like the URL path, the request method, specific headers, and query parameters. Each rule has a priority, an optional percentage for how often it should fire on matching traffic, and a fault definition that says what kind of break to apply. It is meant for testing whether your service handles bad conditions gracefully, either while developing locally or as part of a continuous integration pipeline. The README shows Docker and Docker Compose commands to run it, a YAML config example with a mock upstream, and a list of environment variables for things like the upstream URL, ports, an optional API key, log level, and traffic log size. For running and observing it, there is a control API for listing and editing rules, a server-sent-events stream of live traffic, Prometheus metrics, and a SIGHUP signal that reloads the config file without restarting. Building from source uses the Go toolchain, and a Dockerfile and multi-arch buildx command are provided.

Open on GitHub → Explain another repo

Generated 2026-05-21 · Model: sonnet-4-6 · Verify against the repo before relying on details.