Depurar y solucionar problemas de proxies de Node.js

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

Se recomienda que te asegures de que cualquier código de Node.js que agregues a un proxy funcione antes de implementarlo en Edge. En este tema, se analizan las formas de depurar y solucionar problemas de proxies que incluyen aplicaciones de Node.js después de que se implementan.

Aumenta el tamaño del grupo de conexiones para mejorar el rendimiento

Si notas un rendimiento lento, tal vez puedas resolver el problema aumentando el tamaño predeterminado del grupo de conexiones de Node.js con maxSockets o inhabilitando la agrupación de sockets por completo. Para obtener más información y ejemplos de código, consulta Sugerencias de rendimiento de Node.js: Agrupación de sockets en la comunidad de Apigee.

Visualiza registros de Node.js

Para ver la información de registro de tu aplicación de Node.js, sigue estos pasos:

  1. En la página principal de proxies de API, haz clic en el proxy que deseas ver.
  2. En la página de resumen del proxy seleccionado, haz clic en Registros de Node.js en el lado derecho de la barra de herramientas.

En la página Registros, puedes seleccionar un intervalo de tiempo de los registros para ver, como se muestra a continuación. Los registros registran las llamadas a métodos HTTP, el éxito o el fracaso de las llamadas, los mensajes de console.log, etcétera. Ingresa una string en el campo de búsqueda para mostrar todas las entradas de registro que contengan la string.

Cómo usar la herramienta de registro

La herramienta de seguimiento es útil para realizar depuraciones de proxy en general. Para obtener información detallada sobre cómo usar la herramienta de seguimiento, consulta Usa la herramienta de seguimiento.

Resultado de la consola de impresión

Puedes incorporar las instrucciones de console.log en tu código de Node.js y ver el resultado en la herramienta de seguimiento. Por ejemplo, la siguiente declaración imprime el valor de la variable config.user:

console.log('Logging in as %s', config.username);

Si deseas ver el resultado de los mensajes console.log en la herramienta de seguimiento, llama a la API en la herramienta de seguimiento y haz clic en Resultado de todas las transacciones para abrir el panel de resultados:

Supongamos que ejecutaste el siguiente código...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

Las instrucciones de la consola aparecerán en el panel:

Configuración del tiempo de espera de destino de Nginx

Si usas Nginx como proxy y ves errores de “Puerta de enlace incorrecta”, intenta aumentar la configuración de tiempo de espera del proxy de Nginx como se explica a continuación:

Por ejemplo:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Según el tiempo que tarde el servidor en responder, puede determinar la configuración ideal de tiempo de espera. Por ejemplo, un tiempo de espera de lectura de 45 a 60 segundos puede ser ideal para proporcionar un búfer razonable.

Configura los parámetros de tiempo de espera de destino de Apigee

También puedes configurar los valores de tiempo de espera predeterminados de Apigee en el elemento HttpTargetConnection en TargetEndpoint. Los valores predeterminados son los siguientes:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

Consulta también la Referencia de propiedades de extremos.

Más información

Para obtener más información sobre la depuración, consulta:

Próximos pasos

Para obtener información sobre la compatibilidad del módulo Node.js en Apigee Edge, incluida la información sobre la compatibilidad con HTTP/HTTPS, TLS y otros temas avanzados, consulta Comprende la compatibilidad de Edge para módulos de Node.js.