Débogage et dépannage des proxys Node.js

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

Nous vous recommandons de vous assurer que tout code Node.js que vous ajoutez à un proxy fonctionne avant le déploiement sur Edge. Cet article explique comment déboguer et dépanner les proxys qui incluent Node.js des applications après leur déploiement.

Augmentation de la taille du pool de connexions à améliorer les performances

Si vous constatez un ralentissement des performances, vous pouvez peut-être résoudre le problème en augmentant la valeur par défaut La taille du pool de connexions Node.js avec maxSockets, ou en désactivant le pooling de sockets. Pour en savoir plus et obtenir un exemple de code, consultez la page Node.js Conseils sur les performances: pooling de sockets dans la communauté Apigee.

Afficher les journaux Node.js

Pour afficher les informations de journal de votre application Node.js, procédez comme suit:

  1. Sur la page principale des proxys d'API, cliquez sur le proxy que vous souhaitez afficher.
  2. Sur la page de résumé du proxy sélectionné, cliquez sur Journaux Node.js sur sur le côté droit de la barre d'outils.

Sur la page "Journaux", vous pouvez sélectionner une période de journaux à afficher, comme indiqué ci-dessous. Enregistrement des journaux les appels de méthode HTTP, la réussite ou l'échec des appels, les messages console.log, etc. Saisissez une recherche chaîne dans le champ de recherche pour afficher toutes les entrées de journal qui la contiennent.

Utiliser l'outil Trace

L'outil de traçage est utile pour le débogage général du proxy. Pour en savoir plus sur l'utilisation du l'outil de traçage, consultez la section Utiliser Trace l'outil.

Impression de la sortie de la console

Vous pouvez intégrer des instructions console.log dans votre code Node.js et afficher le résultat dans la trace. . Par exemple, l'instruction suivante affiche la valeur de la variable config.user:

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

Pour afficher la sortie des messages console.log dans l'outil de trace, appelez votre API dans l'outil Trace, puis cliquez sur Output from all Transactions (Sortie de toutes les transactions) ouvrez le panneau de sortie:

En supposant que vous avez exécuté le code suivant...

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

... les instructions de la console apparaissent dans le panneau:

Configurer les paramètres de délai avant expiration de la cible Nginx

Si vous utilisez Nginx en tant que proxy et que la section "Passerelle incorrecte" s'affiche essayez d'augmenter la valeur du proxy Nginx la configuration du délai avant expiration, comme expliqué ici:

Exemple :

proxy_connect_timeout       60;
proxy_read_timeout          120;

Le délai de réponse idéal dépend du temps que met le serveur pour répondre. de configuration. Par exemple, un délai de lecture de 45 à 60 secondes peut être idéal pour fournir un tampon raisonnable.

Configurer les paramètres de délai avant expiration de la cible Apigee

Vous pouvez également configurer les valeurs de délai avant expiration par défaut d'Apigee dans l'élément HttpTargetConnection dans le point de terminaison TargetEndpoint. Les valeurs par défaut sont les suivantes:

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>

Consultez également la documentation de référence sur les propriétés des points de terminaison.

Pour en savoir plus

Pour en savoir plus sur le débogage, consultez:

Étapes suivantes

Pour plus d'informations sur la prise en charge des modules Node.js dans Apigee Edge, y compris des informations sur des protocoles HTTP/HTTPS, TLS et d'autres sujets avancés, consultez la page Comprendre la compatibilité Edge pour les modules Node.js.