Repolode
bojand

bojand/ghz

Ferramenta de linha de comando para benchmark e testes de carga de serviços gRPC, com concorrência, limites de taxa e formatos de saída configuráveis.

Estrelas
3,359
Forks
284
Issues abertas
101
Último commit
há 5 dias

O que é?

ghz é uma ferramenta de linha de comando e um pacote Go para medir o desempenho de serviços gRPC. Basta informar um host e um método totalmente qualificado, fornecer um arquivo .proto ou um protoset compilado, e a ferramenta envia requisições enquanto registra latência e throughput.

A carga pode ser configurada de várias formas: uma taxa constante de requisições, um número fixo de workers concorrentes ou cronogramas em etapas e lineares que aumentam gradualmente o RPS ou a concorrência ao longo do tempo. Os testes podem ser limitados por quantidade de requisições ou duração, e chamadas de streaming são compatíveis com opções de intervalo entre mensagens e duração dos streams. TLS, certificados de cliente, metadados e compressão gzip são configuráveis.

Os resultados podem ser exibidos como resumo, texto formatado, JSON, CSV, HTML ou no formato de linhas do InfluxDB. As configurações de teste também podem ser armazenadas em um arquivo de configuração JSON ou TOML.

Recursos principais

  • 01Cronogramas de carga com taxa constante ou aumentos em etapas ou lineares de RPS e concorrência.
  • 02Compatível com chamadas gRPC unary e streaming usando arquivos proto ou protosets.
  • 03Opções para TLS, certificados de cliente, authority personalizada e compressão gzip.
  • 04Saída em formatos de resumo, texto formatado, JSON, CSV, HTML ou InfluxDB.
  • 05Pode ser usado como CLI ou importado como pacote Go.

Casos de uso

  • Testar a carga de um microsserviço gRPC antes de uma release.
  • Encontrar a taxa de requisições em que a latência de um serviço começa a piorar.
  • Comparar o desempenho entre versões de um serviço em um pipeline de CI.
  • Fazer benchmark de endpoints gRPC com TLS ou compressão ativados.

Início rápido

  1. 1

    Instale com Homebrew

    brew install ghz
  2. 2

    Ou instale com Go (1.23 ou superior)

    go install github.com/bojand/ghz/cmd/ghz@latest
  3. 3

    Execute um teste de carga em um servidor gRPC com um arquivo proto e um host

Antes de usar

  • A documentação está hospedada externamente em ghz.sh, e não no repositório.

Em coleções

Tópicos

Perguntas frequentes

O que é ghz?
Ferramenta de linha de comando para benchmark e testes de carga de serviços gRPC, com concorrência, limites de taxa e formatos de saída configuráveis. ghz é uma ferramenta de linha de comando e um pacote Go para medir o desempenho de serviços gRPC. Basta informar um host e um método totalmente qualificado, fornecer um arquivo .proto ou um protoset compilado, e a ferramenta envia requisições enquanto registra latência e throughput.
ghz é gratuito? Qual é a licença?
ghz é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
ghz ainda é mantido?
Manutenção ativa. O último commit de ghz foi em 1 de nov. de 2026.
Para que posso usar ghz?
Testar a carga de um microsserviço gRPC antes de uma release. Encontrar a taxa de requisições em que a latência de um serviço começa a piorar. Comparar o desempenho entre versões de um serviço em um pipeline de CI. Fazer benchmark de endpoints gRPC com TLS ou compressão ativados.
Como instalar ghz?
Instale com Homebrew: brew install ghz Ou instale com Go (1.23 ou superior): go install github.com/bojand/ghz/cmd/ghz@latest Execute um teste de carga em um servidor gRPC com um arquivo proto e um host
Onde consigo ghz?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/bojand/ghz

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados