Nighthawk-based wget

オープン
#760 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 3 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
cpp
領域
cli

調査の方向性

この issue にはファイル名もテストも記載されていません。まず、Nighthawk のコマンドライン設定、レスポンスのロギング、終了述語のエントリーポイントをたどってください。あるモードが説明された flag を受け付け、指定された低 RPS のリクエストを実行し、各ステータスクラスの最初のレスポンスをログに記録し、成功した 2xx レスポンスを受け取るか、記載された失敗の上限に達した後に停止すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

enhancement good first issue help wanted

When an Envoy server listens with a custom transport socket, another Envoy downstream with the same transport socket can be the only tool capable of making valid requests to it.

If wget or curl doesn't work because of the custom protocol, it is difficult to test whether a server is working.

The current solution is to run a low-RPS Nighthawk benchmark for a few seconds and see if it returns 2xx. But if there is an error, some diagnostic information is lost.

We should consider creating a mode for Nighthawk where it:

  • Makes a single HTTP request
  • Prints or logs the full HTTP response

This would also be useful for debugging a server with an ordinary protocol where an ordinary Nighthawk benchmark was returning all 4xx or 5xx.

A cheap way to implement it:

  • Log the first 2xx HTTP response in full
  • Log the first 3xx HTTP response in full
  • Log the first 4xx HTTP response in full
  • Log the first 5xx HTTP response in full

Plus a command line flag that translates to:

  • RPS 1
  • Duration 10 seconds
  • Termination predicates that allow up to 10 failures of each kind: connection failure, stream reset, 3xx, 4xx, 5xx
  • Extra termination predicate that quits when the 2xx count exceeds 0
主要言語
C++
スター
420
フォーク
99
平均マージ
2日 14時間
マージ済み PR(30日)
17

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

envoyproxy/nighthawk のほかの issue

envoyproxy/nighthawk の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。