2016-09-28 1 views
0

J'ai un serveur HapiJS fonctionnant avec une variété de plugins et de modules utilisés partout. Parfois, les appels d'API prennent plus de temps que je ne le pensais et je cherche à instrumenter le code pour pouvoir obtenir une répartition par minutage de ce que le service/appel en aval prend tout le temps.Comment faire l'instrumentation de synchronisation dans Node.js

Quelles sont les options disponibles pour faire cela à la demande? Quelque chose de similaire à ce mojito-waterfall?

+0

Demander des modules est considéré hors-sujet ici. Bien que ce ne soit pas aussi actif que le débordement de pile, vous voulez probablement aller à [Recommandations de logiciel] (http://softwarerecs.stackexchange.com/) ou encadrer votre question différemment si vous demandez comment résoudre un problème spécifique plutôt que de demander pour un module pour résoudre le problème. – jfriend00

+2

Un simple changement à "comment faire ..." ramènerait cela sur le sujet. Notez que répondre ** avec ** un module comme recommandation n'est pas considéré comme une mauvaise pratique (à moins que la réponse ne soit une réponse de lien uniquement) – slebetman

Répondre

1

Pour inspecter généralement le trafic réseau sur node.js, vous pouvez utiliser node-inspector. Il suffit de l'installer, puis exécutez votre application avec node-debug et connectez-vous au débogueur avec Google Chrome (pas sûr si cela fonctionne avec d'autres navigateurs, car il utilise les outils de développement de Chrome). Vous pouvez ensuite ouvrir l'onglet réseau et voir toutes les connexions réseau, tout comme vous déboguez le code de votre navigateur.

Notez que certaines versions de node.js peuvent ne pas fonctionner avec node-inspector. La dernière version qui fonctionne à ce jour est 6.3.1. Downgrade/upgrade node.js si nécessaire.

+0

Existe-t-il une option pour le faire sur un serveur en direct au lieu de redémarrer le nœud? –

+0

Vous pouvez si vous avez exécuté votre serveur en mode de débogage. Node.js ouvre un port de débogage auquel vous pouvez vous connecter. Je pense qu'il y a quelque chose dans les docs de node-inspector sur la façon de se connecter à un débogueur en cours d'exécution. Mais si vous n'avez pas exécuté de nœud en mode de débogage, je ne pense pas qu'il existe de mécanisme pour s'y connecter. Je ne sais pas quelle est la pénalité de vitesse lors de l'exécution en mode de débogage. – slebetman