Repolode
bojand

bojand/ghz

Herramienta de línea de comandos para comparar el rendimiento y probar la carga de servicios gRPC, con concurrencia, límites de tasa y formatos de salida configurables.

Estrellas
3,359
Forks
284
Issues abiertos
101
Último commit
hace 6 días

¿Qué es?

ghz es una herramienta de línea de comandos y un paquete de Go para medir el rendimiento de servicios gRPC. Indica un host y un método completo, y proporciona un archivo .proto o un protoset compilado. La herramienta envía solicitudes y registra la latencia y el rendimiento.

La carga se puede configurar de varias formas: una tasa constante de solicitudes, un número fijo de workers concurrentes o cronogramas escalonados y lineales que aumentan gradualmente las RPS o la concurrencia. Las pruebas se pueden limitar por cantidad de solicitudes o duración, y se admiten llamadas de streaming con opciones para definir los intervalos entre mensajes y la duración de los streams. Se pueden configurar TLS, certificados de cliente, metadatos y compresión gzip.

Los resultados se pueden mostrar como resumen, texto con formato, JSON, CSV, HTML o en formato de líneas de InfluxDB. La configuración de las pruebas también se puede guardar en un archivo de configuración JSON o TOML.

Funciones clave

  • 01Cronogramas de carga con tasa constante o incrementos escalonados o lineales de RPS y concurrencia.
  • 02Admite llamadas gRPC unarias y de streaming con archivos proto o protosets.
  • 03Opciones de TLS, certificados de cliente, autoridad personalizada y compresión gzip.
  • 04Resultados en formato de resumen, texto con formato, JSON, CSV, HTML o InfluxDB.
  • 05Se puede usar como CLI o importar como paquete de Go.

Casos de uso

  • Probar la carga de un microservicio gRPC antes de una versión nueva.
  • Encontrar la tasa de solicitudes a partir de la cual la latencia de un servicio empieza a degradarse.
  • Comparar el rendimiento entre versiones de un servicio en un pipeline de CI.
  • Comparar el rendimiento de endpoints gRPC con TLS o con la compresión habilitada.

Inicio rápido

  1. 1

    Instálalo con Homebrew

    brew install ghz
  2. 2

    O instálalo con Go (1.23 o posterior)

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

    Ejecuta una prueba de carga en un servidor gRPC con un archivo proto y un host

Antes de usarlo

  • La documentación está alojada externamente en ghz.sh, no en el repositorio.

En colecciones

Temas

Preguntas frecuentes

¿Qué es ghz?
Herramienta de línea de comandos para comparar el rendimiento y probar la carga de servicios gRPC, con concurrencia, límites de tasa y formatos de salida configurables. ghz es una herramienta de línea de comandos y un paquete de Go para medir el rendimiento de servicios gRPC. Indica un host y un método completo, y proporciona un archivo .proto o un protoset compilado. La herramienta envía solicitudes y registra la latencia y el rendimiento.
¿ghz es gratuito? ¿Qué licencia tiene?
ghz es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿ghz sigue mantenido?
Mantenimiento activo. El último commit de ghz fue el 1 nov 2026.
¿Para qué puedo usar ghz?
Probar la carga de un microservicio gRPC antes de una versión nueva. Encontrar la tasa de solicitudes a partir de la cual la latencia de un servicio empieza a degradarse. Comparar el rendimiento entre versiones de un servicio en un pipeline de CI. Comparar el rendimiento de endpoints gRPC con TLS o con la compresión habilitada.
¿Cómo se instala ghz?
Instálalo con Homebrew: brew install ghz O instálalo con Go (1.23 o posterior): go install github.com/bojand/ghz/cmd/ghz@latest Ejecuta una prueba de carga en un servidor gRPC con un archivo proto y un host
¿Dónde consigo ghz?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/bojand/ghz

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados