Qu'est-ce que Node.js?
Node.js est un environnement serveur multiplateforme et open-source qui peut fonctionner sous Windows, Linux, Unix, macOS, etc. Node.js est un environnement d'exécution JavaScript back-end, qui fonctionne sur le moteur JavaScript V8 et exécute le code JavaScript en dehors d'un navigateur web.
Node.js permet aux développeurs d'utiliser JavaScript pour écrire des outils de ligne de commande et des scripts côté serveur. La possibilité d'exécuter du code JavaScript sur le serveur est souvent utilisée pour générer un contenu de page web dynamique avant que la page ne soit envoyée au navigateur web de l'utilisateur. Par conséquent, Node.js représente un paradigme "JavaScript partout", unifiant le développement d'applications web autour d'un seul langage de programmation, par opposition à l'utilisation de langages différents pour la programmation côté serveur et côté client.
Node.js possède une architecture événementielle capable d'effectuer des I/O asynchrones. Ces choix de conception visent à optimiser le débit et l'évolutivité des applications web comportant de nombreuses opérations d'entrée/sortie.
Instrumentation des applications Node.js
L'Agent ServicePilot, associé à une librairie d'instrumentation Node.js, pour collecter les métriques de performance et les erreurs du serveur d'application. En fonction de la librairie d'instrumentation choisie, il peut avoir un support intégré pour les frameworks et les routeurs les plus populaires.
La librairie APM instrumente automatiquement les frameworks pris en charge et enregistre les événements intéressants, telles que les requêtes HTTP et les requêtes de base de données. Pour ce faire, il patche les modules au fur et à mesure qu'ils sont chargés afin de capturer les appels aux fonctions et aux callbacks des modules. De plus, dans certains cas, un module sera patché pour permettre au contexte de traçage d'être propagé à travers la continuation asynchrone. Cela signifie que pour les technologies prises en charge, aucune modification du code n'est nécessaire.
L'agent relie automatiquement les appels de fonction du module aux appels de type callback pour mesurer leur durée et les métadonnées (comme la déclaration DB), ainsi que les informations liées à HTTP (comme l'URL, les paramètres et les en-têtes).
Supervision des traces d'applications Node.js
Les ressources sont automatiquement créées à partir de ce package après avoir déployé l'Agent ServicePilot avec la configuration adéquate de la librairie APM Node.js. Ce package supervise les requêtes web HTTP(S) des processus Node.js.
Cela permet de rassembler des statistiques résumées (avec min,max,avg...) par application Node.js telles que :
- Requêtes par minute
- Somme des requêtes par code de retour HTTP et méthodes
- Nombre de requêtes dans chaque intervalle de temps de réponse
- Requêtes établies ou interrompues
Afin de fournir un aperçu approfondi de l'application Node.js, les détails recueillis par requête comprennent :
- Host et chemin de page web
- IP client et serveur
- Temps de réponse réel des utilisateurs
- HTTP Return code et method
- Pays et géolocalisation pour les IPs publiques