¿Cómo monitorear las solicitudes HTTP salientes en Node.js?

Estoy creando una pequeña herramienta de desarrollo (HUD) para una aplicación escrita en node. En la herramienta, quiero mostrar todas las solicitudes HTTP/HTTPS que se realizaron para servir esa página (para mostrárselas al desarrollador y registrar su número). ¿Hay una manera limpia de hacerlo, que no implique envolver algo como http.request()? Si no es así, ¿cuál es el método de nivel más bajo que debería ajustarse para registrar tanto HTTP como HTTPS? ¿Qué hay de las conexiones TCP?

preguntado el 28 de julio de 12 a las 07:07

1 Respuestas

La respuesta a esto depende de cuán complicado sea su código. Si realiza 3 o 4 solicitudes de recursos externos en cada solicitud, simplemente insertando manualmente el código de perfilado, probablemente sea la solución más limpia y simple.

Si dispara muchas solicitudes, parches de mono (envoltura) http.request y https.request se puede hacer con bastante facilidad.

patcher = (patchMe) ->
  original = patchMe.request
  patchMe.request = (options, callback) ->
    console.log options.host, options.method # or any other counting, profiling
    original(options, callback)

http = require 'http'
https = require 'https'

patcher(http)
patcher(https)

Si desea parchear más de esas solicitudes, en el nivel tcp/udp, desafortunadamente tendrá que leer la fuente para averiguar qué método subyacente podría parchear, no he ido allí.

Disfruté leyendo la fuente de tiempo de nodo, que parches de mono require función para perfilar cualquier uso de funciones / módulos específicos más profundos en su código. ¡Ve a leer esa fuente! :)

Respondido 28 Jul 12, 11:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.