Debug e risoluzione dei problemi dei proxy Node.js

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

È buona norma assicurarsi che il codice Node.js aggiunto a un proxy funzioni prima di eseguirlo su Edge. Questo argomento illustra i modi per eseguire il debug e risolvere i problemi dei proxy che includono applicazioni Node.js dopo il loro dispiegamento.

Aumento delle dimensioni del pool di connessioni per migliorare le prestazioni

Se noti prestazioni lente, potresti essere in grado di risolvere il problema aumentando le dimensioni predefinite del pool di connessioni Node.js con maxSockets o disattivando completamente il pooling di socket. Per ulteriori informazioni e codice di esempio, consulta Node.js Suggerimenti per il rendimento: pooling di socket nella community Apigee.

Visualizzazione dei log di Node.js

Per visualizzare le informazioni dei log relative alla tua applicazione Node.js:

  1. Nella pagina dei proxy API principali, fai clic sul proxy che vuoi visualizzare.
  2. Nella pagina di riepilogo del proxy selezionato, fai clic su Log di Node.js sul lato destro della barra degli strumenti.

Nella pagina Log, puoi selezionare un intervallo di tempo dei log da visualizzare, come mostrato di seguito. I log registrano chiamate ai metodi HTTP, esito positivo o negativo delle chiamate, messaggi console.log e così via. Inserisci una stringa di ricerca nel campo di ricerca per visualizzare tutte le voci di log che contengono la stringa.

Utilizzo dello strumento Traccia

Lo strumento di traccia è utile per il debug generale del proxy. Per informazioni dettagliate sull'uso dello strumento Trace, consulta Utilizzo dello strumento Trace.

Stampare l'output della console

Puoi incorporare istruzioni console.log nel codice Node.js e visualizzare l'output nello strumento di traccia. Ad esempio, l'istruzione seguente stampa il valore della variabile config.user:

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

Per visualizzare l'output dei messaggi console.log nello strumento di tracciamento, chiama la tua API nello strumento di tracciamento e fai clic su Output da tutte le transazioni per aprire il riquadro di output:

Supponendo che tu abbia eseguito il seguente codice…

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');
});

... le istruzioni della console vengono visualizzate nel riquadro:

Configurazione delle impostazioni di timeout del target Nginx

Se utilizzi Nginx come proxy e visualizzi errori "Bad Gateway", prova ad aumentare la configurazione del timeout del proxy Nginx come spiegato qui:

Ad esempio:

proxy_connect_timeout       60;
proxy_read_timeout          120;

A seconda del tempo di risposta del server, puoi determinare le configurazioni di timeout ideali. Ad esempio, un timeout di lettura di 45-60 secondi potrebbe essere ideale per fornire un buffer ragionevole.

Configurazione delle impostazioni di timeout del target Apigee

Puoi anche configurare i valori di timeout predefiniti di Apigee nell'elemento HttpTargetConnection in TargetEndpoint. I valori predefiniti sono:

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>

Vedi anche Riferimento per le proprietà degli endpoint.

Per ulteriori informazioni

Per scoprire di più sul debug, consulta:

Passaggi successivi

Per informazioni sul supporto dei moduli Node.js in Apigee Edge, incluso il supporto per HTTP/HTTPS, TLS e altri argomenti avanzati, consulta Informazioni sul supporto di Edge per i moduli Node.js.