Repolode
tsenart

tsenart/vegeta

一定のリクエストレートでHTTPリクエストを送信し、レイテンシ統計を出力する、コマンドラインツール兼Goライブラリ。

代替できる製品:Apache JMeter

スター
25,225
フォーク
1,428
未解決の Issue
125
最終コミット
先月

これは何?

Vegetaは、HTTPサービスに一定のリクエストレートで負荷をかけるためのHTTP負荷テストツールです。コマンドラインプログラムとして実行でき、attack、encode、report、plotの各コマンドをUNIXパイプで連結して使えます。また、Goライブラリとしてインポートすれば、コードから負荷テストを実行できます。

ターゲットは、HTTPメッセージ形式のプレーンテキストリスト、または別のプログラムが生成するJSONオブジェクトのストリームで指定できるため、リクエストを動的に生成できます。attackコマンドでは、リクエストレート、実行時間、ワーカー数、タイムアウト、TLS証明書、HTTP/2、keep-alive、接続数の上限、カスタムDNSリゾルバーを設定できます。結果はテキストまたはJSONで要約できるほか、ヒストグラムにまとめたり、HDR histogramデータとしてエクスポートしたり、レイテンシをインタラクティブなHTMLグラフとして表示したりできます。

Vegetaは、攻撃の実行中にPrometheus exporterも提供します。また、複数台のマシンにターゲットレートを分割して実行し、結果ファイルをマージすることで、分散実行にも対応します。

主な機能

  • 01一定レートのHTTP負荷テストを、コマンドラインまたはGoライブラリから実行できます。
  • 02テキストリストまたはJSONストリームでターゲットを指定でき、入力を遅延生成することもできます。
  • 03パーセンタイル、ステータスコードのヒストグラム、エラー一覧を含むレイテンシレポートを作成できます。
  • 04テキスト、JSON、ヒストグラム、HDR histogramの各形式で出力できます。
  • 05リクエストのレイテンシの推移をインタラクティブなHTMLグラフで表示できます。
  • 06攻撃の実行中に使えるPrometheus exporterを内蔵しています。
  • 07HTTP/2、TLSクライアント証明書、カスタムヘッダー、DNSリゾルバーに対応しています。

ユースケース

  • 一定のリクエストレートで負荷をかけたときのAPIエンドポイントのレイテンシを測定する。
  • ターゲットレートを複数台のマシンに分割し、分散負荷テストを実行する。
  • スクリプトやデータパイプラインから、動的に生成したリクエストをサービスに送る。
  • Prometheus exporterを通じて、Grafanaで攻撃時のメトリクスを監視する。

クイックスタート

  1. 1

    HomebrewでmacOSにインストールする

    brew update && brew install vegeta
  2. 2

    pacmanでArch Linuxにインストールする

    pacman -S vegeta
  3. 3

    テストを実行する:5秒間、毎秒50件のGETリクエストを送信してレポートを出力する

    echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report

使う前に知っておきたいこと

  • その他のプラットフォームでは、インストールスクリプトとバイナリはリリースページにのみ掲載されているため、セットアップ方法はOSによって異なります。

収録されている特集

トピック

よくある質問

vegeta とは?
一定のリクエストレートでHTTPリクエストを送信し、レイテンシ統計を出力する、コマンドラインツール兼Goライブラリ。 Vegetaは、HTTPサービスに一定のリクエストレートで負荷をかけるためのHTTP負荷テストツールです。コマンドラインプログラムとして実行でき、attack、encode、report、plotの各コマンドをUNIXパイプで連結して使えます。また、Goライブラリとしてインポートすれば、コードから負荷テストを実行できます。
vegeta は無料で使えますか?ライセンスは?
vegeta は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
vegeta は今もメンテナンスされていますか?
半年以内に更新あり。vegeta の最終コミットは 2026年9月24日 です。
vegeta は何に使えますか?
一定のリクエストレートで負荷をかけたときのAPIエンドポイントのレイテンシを測定する。 ターゲットレートを複数台のマシンに分割し、分散負荷テストを実行する。 スクリプトやデータパイプラインから、動的に生成したリクエストをサービスに送る。 Prometheus exporterを通じて、Grafanaで攻撃時のメトリクスを監視する。
vegeta のインストール方法は?
HomebrewでmacOSにインストールする: brew update && brew install vegeta pacmanでArch Linuxにインストールする: pacman -S vegeta テストを実行する:5秒間、毎秒50件のGETリクエストを送信してレポートを出力する: echo "GET http://localhost/" | vegeta attack -duration=5s | tee results.bin | vegeta report
vegeta はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/tsenart/vegeta

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト