Skip to content
SPECIFICTION
Get listed

ghz

ghz.sh

Free plan LinuxAPISelf-hosted
Visit ghz.sh
Spec score 8.7 #2 of 24 in gRPC Tools

What it is

ghz is a command-line utility and Go package for load testing and benchmarking gRPC services, including local debugging and performance regression checks in CI. Tests can define a service with a.proto file, a compiled protoset bundle, or server reflection, and exercise unary, streaming, or duplex calls using JSON or binary data. Load schedules include constant, step, and linear request rates. Go templates can generate request data and metadata for each call using values such as worker ID, request number, method name, and timestamps. The CLI can emit summary, CSV, JSON, pretty JSON, HTML, Prometheus text exposition, and InfluxDB line protocol results. Documentation also covers InfluxDB output, Prototool, and prebuilt Grafana dashboards. The complementary ghz-web application is labeled beta; it stores reports in projects for viewing and comparison over time, and supports SQLite, MySQL, or PostgreSQL storage. It accepts reports through ingest endpoints. The project is identified as Apache-2.0 licensed. Installation options include prebuilt executables, Homebrew, and building from source. The CLI is listed at free; the web companion is beta.

Spec sheet

Purpose
ghz is a command line utility and Go package for load testing and benchmarking gRPC services, including local debugging and performance regression testing in automated CI environments.Read 4 Oct 2026 · ghz.sh
API
ghz-web provides ingest endpoints for raw JSON reports, including an endpoint that creates a project automatically.Read 4 Oct 2026 · ghz.sh
Integrations
The documentation includes prebuilt Grafana dashboards and describes InfluxDB output and use with Prototool.Read 4 Oct 2026 · ghz.sh
Support
The site links to the guide, Go documentation, GitHub repository, and a community support link labeled “Say Thanks!”.Read 4 Oct 2026 · ghz.sh
License
The GitHub repository identifies the project license as Apache-2.0.Read 4 Oct 2026 · github.com
Call types
The maker says ghz can test unary, streaming, and duplex calls using JSON or binary data.Read 4 Oct 2026 · ghz.sh
Custom request data
Request data and metadata can use Go template actions evaluated for every request, with variables such as worker ID, request number, method name, and timestamps.Read 4 Oct 2026 · ghz.sh
Dynamic data
Go templates and template functions can generate request data and metadata for each request.Read 4 Oct 2026 · ghz.sh
Ingest API
The web server provides POST /api/ingest to create a project and ingest a report, or POST /api/projects/:id/ingest to add a report to an existing project.Read 4 Oct 2026 · ghz.sh
Installation
The maker documents downloadable operating-system binaries, Homebrew, source builds, and Docker installation.Read 4 Oct 2026 · github.com
Load patterns
Load options include constant, step, and linear request rates.Read 4 Oct 2026 · ghz.sh
Load schedules
Load can use constant, step, or line schedules to control request rates.Read 4 Oct 2026 · ghz.sh
Output formats
Results can be emitted as summary, CSV, JSON, pretty JSON, HTML, Prometheus text, or InfluxDB line protocol.Read 4 Oct 2026 · ghz.sh
Pricing and trial
The maker's opened pages describe ghz as a complementary tool and do not state a price or trial offer.Read 4 Oct 2026 · ghz.sh
Protocol definitions
Tests can use a .proto file, a compiled protoset bundle, or server reflection.Read 4 Oct 2026 · ghz.sh
Protocol inputs
ghz can use a proto file, a prebuilt protoset bundle, or server reflection.Read 4 Oct 2026 · ghz.sh
Report formats
The CLI documents summary, CSV, HTML, JSON, Prometheus text exposition, and InfluxDB line protocol output formats.Read 4 Oct 2026 · ghz.sh
RPC patterns
ghz supports unary, streaming, and duplex calls using JSON or binary data.Read 4 Oct 2026 · ghz.sh
Security options
The CLI documents CA certificates, client certificates and keys, server-name override, and options to skip TLS verification or use plaintext connections.Read 4 Oct 2026 · github.com
Self-hosted storage
ghz-web supports SQLite, MySQL, and PostgreSQL databases and can be configured with environment variables or a YAML, TOML, or JSON file.Read 4 Oct 2026 · ghz.sh
Web application
The beta ghz-web companion stores, displays, compares, and tracks test results over time.Read 4 Oct 2026 · ghz.sh
Web companion
ghz-web is a complementary server and web application for storing, viewing, and comparing ghz test results; the maker labels it beta.Read 4 Oct 2026 · ghz.sh
Web report status
Reports and projects have OK or FAIL status, and a project reflects the status of its latest report.Read 4 Oct 2026 · ghz.sh
Web result tracking
ghz-web groups individual test reports into projects so results can be tracked, analyzed, and compared over time.Read 4 Oct 2026 · ghz.sh
Web server installation
ghz-web is distributed as a prebuilt executable for the user's operating system and can be configured with environment variables or a configuration file.Read 4 Oct 2026 · ghz.sh

Plans and prices

ghz Free Open-source gRPC load testing CLI and Go package; complementary web application is beta Read 4 Oct 2026 · github.com

Every ghz plan and price →

Strong points and limits

Strong points

  • Tests unary, streaming, and duplex calls
  • Supports server reflection for protocol inputs
  • Offers constant, step, and linear load schedules
  • Produces several report and monitoring formats
  • Supports SQLite, MySQL, and PostgreSQL in ghz-web

Limits

  • ghz-web is labeled beta
  • ghz-web requires self-hosted deployment
  • No price or trial offer is stated for ghz-web

Who it suits

ghz suits developers who need gRPC load tests from a CLI or Go code, with output formats for reports and monitoring systems. ghz-web may suit those who want to group and compare test reports, provided they are comfortable with a beta self-hosted companion.

Verdict

ghz provides flexible gRPC testing inputs, call patterns, and reporting outputs at free. Treat ghz-web as a beta companion rather than an established production component.

Where Specifiction places it

Alternatives to ghzAll alternatives →