Depurar y solucionar problemas de proxies de Node.js

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Asegúrate de que el código de Node.js que agregues a un proxy funcione antes de implementarlo a Edge. En este tema, se analizan las formas de depurar y solucionar problemas de los proxies que incluyen Node.js aplicaciones después de implementarlas.

Aumentando el tamaño del grupo de conexiones a mejorar el rendimiento

Si notas un rendimiento lento, podrías resolver el problema aumentando la configuración predeterminada Tamaño del grupo de conexiones de Node.js con maxSockets, o por inhabilitar la reducción de sockets. Para obtener más información y ejemplos de código, consulta Node.js Sugerencias de rendimiento: Agrupación de sockets en la comunidad de Apigee.

Visualiza registros de Node.js

Para ver la información de registro sobre 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. el lado derecho de la barra de herramientas.

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

Cómo usar la herramienta de seguimiento

La herramienta de seguimiento es útil para realizar depuraciones generales de proxy. Para obtener información detallada sobre el uso de la Trace, consulta Cómo usar la herramienta de seguimiento de la aplicación.

Salida de la consola de impresión

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

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

Para ver el resultado de los mensajes de console.log en la herramienta de seguimiento, llama a tu API en la Herramienta de seguimiento y haz clic en Resultado de todas las transacciones para Abre el panel de salida:

Suponiendo 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 sentencias de la consola aparecen en el panel:

Establece la configuración del tiempo de espera del objetivo de Nginx

Si usas Nginx como proxy y consulta “Puerta de enlace incorrecta” intenta aumentar el proxy Nginx tiempo de espera, como se explica aquí:

Por ejemplo:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Según el tiempo que tarde en responder el servidor, se puede determinar el tiempo de espera ideal parámetros de configuración. Por ejemplo, un tiempo de espera de lectura de 45 a 60 segundos podría ser ideal para proporcionar un margen razonable.

Configura el tiempo de espera objetivo de Apigee

También puedes configurar los valores de tiempo de espera predeterminados de Apigee en el elemento HttpTargetConnection en el 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 lo siguiente:

Próximos pasos

Para obtener información sobre la compatibilidad con los módulos de Node.js en Apigee Edge, se incluye información sobre compatibilidad con HTTP/HTTPS, TLS y otros temas avanzados, consulta Información sobre la compatibilidad de Edge para módulos de Node.js.