fasthttpを基盤とする、Go製のクロスプラットフォームなHTTP(S)ベンチマーク・負荷テスト用コマンドラインツールです。
bojand/ghz
gRPCサービスのベンチマークや負荷テストに使えるCLIツール。並行数、リクエストレート、出力形式を設定できます。
- スター
- 3,359
- フォーク
- 284
- 未解決の Issue
- 101
- 最終コミット
- 7 日前
これは何?
ghzは、gRPCサービスのパフォーマンスを測定するCLIツール兼Goパッケージです。ホストと完全修飾メソッド名を指定し、.protoファイルまたはコンパイル済みのprotosetを渡すと、リクエストを送信しながらレイテンシとスループットを記録します。
負荷は、一定のリクエストレート、固定数の並行ワーカー、または時間の経過とともにRPSや並行数を増減させるステップ/ライン形式のスケジュールで設定できます。テストはリクエスト数または実行時間で制限でき、メッセージ間隔やストリームの存続時間を指定してストリーミング呼び出しを実行することもできます。TLS、クライアント証明書、メタデータ、gzip圧縮も設定可能です。
結果は、サマリー、整形テキスト、JSON、CSV、HTML、InfluxDBのline形式で出力できます。テスト設定はJSONまたはTOMLの設定ファイルにも保存できます。
主な機能
- 01RPSや並行数を一定に保つほか、ステップ形式やライン形式で段階的に変化させる負荷スケジュール。
- 02protoファイルまたはprotosetを使った、UnaryおよびストリーミングのgRPC呼び出しに対応。
- 03TLS、クライアント証明書、カスタムauthority、gzip圧縮を設定可能。
- 04サマリー、整形テキスト、JSON、CSV、HTML、InfluxDB形式で出力。
- 05CLIとしても、Goパッケージとしてインポートしても利用可能。
ユースケース
- リリース前にgRPCマイクロサービスの負荷テストを行う。
- サービスのレイテンシが悪化し始めるリクエストレートを特定する。
- CIパイプラインでサービスのバージョン間のパフォーマンスを比較する。
- TLSまたは圧縮を有効にした状態でgRPCエンドポイントのベンチマークを行う。
クイックスタート
- 1
Homebrewでインストール
brew install ghz - 2
またはGo(1.23以降)でインストール
go install github.com/bojand/ghz/cmd/ghz@latest - 3
protoファイルとホストを指定して、gRPCサーバーに負荷テストを実行
使う前に知っておきたいこと
- ドキュメントはリポジトリ内ではなく、外部サイトのghz.shで公開されています。
収録されている特集
トピック
よくある質問
- ghz とは?
- gRPCサービスのベンチマークや負荷テストに使えるCLIツール。並行数、リクエストレート、出力形式を設定できます。 ghzは、gRPCサービスのパフォーマンスを測定するCLIツール兼Goパッケージです。ホストと完全修飾メソッド名を指定し、.protoファイルまたはコンパイル済みのprotosetを渡すと、リクエストを送信しながらレイテンシとスループットを記録します。
- ghz は無料で使えますか?ライセンスは?
- ghz は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- ghz は今もメンテナンスされていますか?
- 活発にメンテナンス中。ghz の最終コミットは 2026年11月1日 です。
- ghz は何に使えますか?
- リリース前にgRPCマイクロサービスの負荷テストを行う。 サービスのレイテンシが悪化し始めるリクエストレートを特定する。 CIパイプラインでサービスのバージョン間のパフォーマンスを比較する。 TLSまたは圧縮を有効にした状態でgRPCエンドポイントのベンチマークを行う。
- ghz のインストール方法は?
- Homebrewでインストール: brew install ghz またはGo(1.23以降)でインストール: go install github.com/bojand/ghz/cmd/ghz@latest protoファイルとホストを指定して、gRPCサーバーに負荷テストを実行
- ghz はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/bojand/ghz
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Webアプリケーションなどの負荷テストと性能測定に使える、オープンソースのJavaアプリケーション。
Elasticsearchのマクロベンチマークフレームワーク。クラスターを構築してベンチマークを実行し、結果を比較します。
一定のリクエストレートでHTTPリクエストを送信し、レイテンシ統計を出力する、コマンドラインツール兼Goライブラリ。
JSON入力でgRPCサーバーを呼び出す、curlのようなコマンドラインツール。server reflectionやprotoファイルからスキーマを取得できます。
JavaScriptでパフォーマンステストを記述し、Go製バイナリで実行するオープンソースの負荷テストツール。