explaingit

fortio/fortio

Analysis updated 2026-07-03

3,691GoAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

A lightweight Go load testing tool that sends controlled traffic to a server, measures response times, and shows you how slow the worst requests really are.

Mindmap

mindmap
  root((fortio))
    What it does
      Load testing
      Latency measurement
      Percentile stats
    Protocols
      HTTP
      gRPC
    Usage modes
      CLI tool
      Web UI
      Go library
    Built-in servers
      Echo server
      Delay injection
      Error rate control
    Install
      Docker
      Binaries
      Homebrew
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Send a fixed number of requests per second to your API and see the 99th percentile latency to find hidden slow responses.

USE CASE 2

Test a gRPC backend service by sending load and collecting timing statistics through Fortio's built-in gRPC support.

USE CASE 3

Simulate error conditions in a test environment by configuring Fortio's server to return specific error codes at a set rate.

USE CASE 4

Embed Fortio as a Go library inside your own testing tool to add built-in load generation.

What is it built with?

GoDockergRPC

How does it compare?

fortio/fortioloov/lensmgetlantern/systray
Stars3,6913,6913,699
LanguageGoGoGo
Setup difficultyeasyeasymoderate
Complexity2/52/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Available as a single binary or Docker image under 6 MB, no external dependencies needed to run basic load tests.

License terms are not described in the explanation.

In plain English

Fortio is a load testing tool written in Go. Load testing means sending a controlled number of requests to a server and measuring how fast it responds. Fortio lets you specify exactly how many requests per second to send, then collects timing data and shows you statistics like the 99th percentile response time, which tells you how slow the worst 1 percent of responses were. It originally started as the load testing tool for the Istio project and was later released as a standalone tool in 2018. The tool is small (the Docker image is under 6 megabytes) and can be used in three ways: as a command-line tool, as a server with a browser-based interface, or as a library that other Go programs can include. The web interface lets you kick off test runs through a form, then see graphs of the results. A live demo is available at demo.fortio.org. Fortio supports testing both standard HTTP services and gRPC services (a different communication protocol commonly used between backend services). It also includes a set of built-in server behaviors for testing purposes: you can have it echo back requests, deliberately add random delays, return specific error codes at a given rate, or act as a proxy that fans requests out to multiple backends. This makes it useful both for testing real services and for setting up controlled test scenarios. Installation options include Docker, pre-built binaries for Windows, macOS, and Linux, a Homebrew package for macOS, Debian and RPM packages for Linux, and building from source. A scripting interface using a simplified Go-like language called grol is also available for writing more complex test sequences. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Show me the Fortio command to send 100 requests per second to https://my-api.example.com/health for 30 seconds and print the 99th percentile latency.
Prompt 2
I want to use Fortio's built-in server to simulate a backend that adds random delays between 10ms and 500ms. Give me the command to start it.
Prompt 3
Help me write a Fortio grol script that runs a load test, waits for results, and prints a summary if the p99 latency exceeds 200ms.
Prompt 4
I'm running Fortio in Docker to test a local service. Write the docker run command to point it at http://host.docker.internal:8080 and generate a load test report.

Frequently asked questions

What is fortio?

A lightweight Go load testing tool that sends controlled traffic to a server, measures response times, and shows you how slow the worst requests really are.

What language is fortio written in?

Mainly Go. The stack also includes Go, Docker, gRPC.

What license does fortio use?

License terms are not described in the explanation.

How hard is fortio to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is fortio for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub fortio on gitmyhub

Verify against the repo before relying on details.