CheckOps home

Tools directory

F

CheckOps

Fortio

Fortio is an Apache-2.0 Go load-testing library, CLI, echo server and web UI that runs at a fixed QPS and records latency histograms and percentiles; it began as Istio's load tester.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

Introduction

Fortio (Greek for “load”) started as Istio’s load-testing tool and graduated to its own project in 2018. It is written in Go, licensed Apache-2.0 at fortio/fortio, and was updated in October 2026.

Fortio runs at a specified queries per second (QPS), records a histogram of execution time and calculates percentiles such as p99. It can run for a set duration, for a fixed number of calls, or until interrupted. The same binary also includes an echo/debug server and a simple web UI.

Its focus on fixed-rate load and accurate latency percentiles makes it useful for service meshes, gRPC services and SLO checks.

In the quality loop, Fortio is handy both before and after release. Before release it measures how a service behaves at a target request rate; after release, the same fixed-QPS runs help confirm that a mesh, proxy or configuration change did not add latency. The echo server is useful for testing the network path on its own, without your application in the way.

Features

  1. Fixed QPS: Run at a precise request rate, or as fast as possible.
  2. Latency histograms: Percentiles and histograms for each run.
  3. HTTP and gRPC: Load test HTTP/1.1, HTTP/2 and gRPC endpoints.
  4. Echo server: Built-in server for testing proxies and meshes, with configurable delays and errors.
  5. Web UI: Start runs and view graphs in a browser.
  6. Library: Embed Fortio’s load generation in Go programs.
  7. JSON results: Machine-readable output for CI and comparison.
  8. Small footprint: Single binary and container image.

Pros

  1. Accurate percentiles: Good for SLO-style latency checks.
  2. Versatile: Client, server and UI in one tool.
  3. Free: Apache-2.0.
  4. Mesh heritage: Proven in the Istio ecosystem.
  5. Active: Regular releases.

Cons

  1. Simple scenarios: Not for complex multi-step user journeys.
  2. Single-node by default: Large distributed tests need orchestration.
  3. Basic UI: Functional rather than polished.
  4. Less scripting: No scripting language for dynamic data.
  5. Smaller community: Than k6 or JMeter.

Run 100 QPS for 30 seconds with 8 connections:

fortio load -qps 100 -c 8 -t 30s https://example.com/

Start the server and UI with fortio server, then open the UI in a browser to run and compare tests.

Other useful commands:

# gRPC ping test against a Fortio server
fortio load -grpc -ping -qps 50 -t 20s localhost:8079

# Save JSON results for comparison
fortio load -qps 200 -t 60s -json result.json http://service:8080/health

Tips: pick a realistic QPS from production metrics, run long enough to see warm-up effects, and compare p50, p90 and p99 latency rather than averages. Use the web UI to graph runs and compare them side by side.

Resources:

Pricing

Fortio is free and open source under Apache-2.0.

  1. Platform and mesh engineers measuring latency at fixed rates.
  2. gRPC service teams needing quick load tests.
  3. SRE teams checking p99 latency against SLOs.
  4. Not a fit for scripted user-journey load tests.

Conclusion

Fortio is a precise, lightweight load tester with an echo server and UI, born in the Istio project.

Use it for fixed-rate latency checks and pair it with scenario tools for complex flows.

Alternatives

Other tools on CheckOps that cover similar ground. Open a page, or compare one with Fortio side by side.