Nighthawk-based wget

Abierto
#760 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp
Área
cli

Línea de trabajo

El issue no menciona archivos ni pruebas. Empieza rastreando los puntos de entrada de Nighthawk para la configuración de la línea de comandos, el registro de respuestas y el predicado de terminación. Se considera terminado cuando un modo acepta el flag descrito, hace que se ejecute la solicitud especificada de baja RPS, registra la primera respuesta de cada clase de estado y se detiene después de una respuesta 2xx exitosa o de alcanzar los límites de fallo indicados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
C++
Estrellas
420
Forks
99
Merge medio
2 d 14 h
PR fusionados (30 d)
17

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de envoyproxy/nighthawk

Todos los issues de envoyproxy/nighthawk

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.