• Assurez la sécurité des applications de la bonne manière! Détectez, protégez, surveillez, accélérez et plus encore…
  • Vous êtes-vous déjà retrouvé dans une situation sans indice avec un crash d'application?

    Votre client a-t-il informé des services en panne?

    Cela doit être une situation difficile. Au fil des ans, NodeJS est devenu un Framework JavaScript pour un développement rapide de micro-services et d'API. Avec les charges de travail exécutées sur NodeJS, il devient crucial de disposer du bon contrôle pour les métriques essentielles.

    Explorons les outils de surveillance Node.JS suivants qui vous aideront à surveiller les performances de l'application et du serveur et d'autres mesures.

    PM2

    PM2 a été l'outil le plus célèbre utilisé par les développeurs Rookie et experts pour s'assurer que leurs applications sont toujours actives. PM2 est utilisé pour exécuter des charges de travail de production en direct et les surveiller à partir de l'interface CLI ou de l'interface Web. Vous pouvez l'installer en tant que module NPM.

    PM2 est une solution prête à l'emploi, fournit les fonctionnalités suivantes prêtes à l'emploi.

    • Gestion de plusieurs applications NodeJS sur un seul serveur
    • Gestion des applications et des journaux d'erreurs
    • Intégration de l'interface Web pour surveiller la santé et les métriques des applications
    • Mise en cluster automatique pour les applications NodeJS
    • Rechargement à chaud de l'application.
    • Prise en charge des scripts de démarrage
    • Journaliser le streaming sur une interface Web

    Premiers pas avec PM2

    Pour installer PM2, assurez-vous que vous disposez NPM installée. Pour valider l'installation et la version de NPM, utilisez la commande ci-dessous.

    npm --version

    Cette commande devrait vous montrer la version de NPM si elle est installée.

    De plus, installez PM2 à l'aide de la commande ci-dessous:

    npm install -g pm2

    Le drapeau mondial -g installera et rendra le module disponible globalement sous forme de commande. Pour démarrer une application utilisant PM2, accédez au dossier contenant le projet NodeJS et exécutez la commande ci-dessous:

    pm2 start <start-filename> --name myapp

    La commande ci-dessus lance une application NodeJs à l'aide du fichier spécifié dans le premier argument. Il nomme également l'application avec le nom myapp. Lors de l'exécution de l'application NodeJS à l'aide de pm2, il garantit que le service ne s'arrête pas et, si tel est le cas, il essaie de redémarrer automatiquement l'application.

    Pour activer la surveillance en direct sur l'interface Web, vous devez vous inscrire ici. Une fois vos clés générées, vous pourrez voir les instructions de connexion de PM2 sur votre serveur à l'interface Web.

    Sematexte

    Sematexte offrent une surveillance complète sur site ou dans le cloud. La pile complète signifie que vous avez une visibilité complète de la disponibilité et des performances de votre infrastructure et de vos applications.

    La plateforme Sematext s'intègre à plus de 100 logiciels, y compris NodeJS. Vous pouvez utiliser certains des éléments suivants avec vos applications.

    • Serveurs Web - Nginx, Apache
    • Base de données - MongoDB, MySQL, MariaDB, Redis
    • Conteneur - Docker, Rancher, Kubernetes
    • Autres langages - PHP, Scala, Python, Go, Java
    • AWS - EC2, Lambda, ELB, Aurora

    Et beaucoup plus…

    Surveillance NodeJS permet de surveiller la latence, le taux de demandes, le GC, les anomalies, le travailleur, les événements, le rythme cardiaque, etc. Vous pouvez visualiser les données sur un magnifique tableau de bord prêt à l'emploi ou en créer un personnalisé si nécessaire. Soyez averti lorsque les choses ne vont pas bien via Slack, WebHooks, PageDuty, HipChat, etc.

    Sematext offre une solution complète de surveillance et d'analyse des journaux tout-en-un. Vous pouvez vérifier le demo pour découvrir la plateforme.

    Appmetrics

    Appmetrics est un projet open source géré et maintenu par IBM. Le projet se concentre sur la fourniture des bases nécessaires pour collecter d'excellentes métriques d'application réparties sur diverses activités telles que la transaction de données, la vitesse du réseau, les performances des requêtes de base de données, l'utilisation du processeur et de la mémoire, la collecte des ordures, etc.

    Le fusionner avec un plugin comme appmetrics-dash pourrait fournir une excellente interface Web pour surveiller vos applications.

    Vous pouvez utiliser Appmetrics comme middleware pour créer vos applications de surveillance.

    Raygun

    Raygun est une plateforme pour gérer et surveiller les performances des applications pour plusieurs langages de programmation, y compris NodeJS. Il vous aide à déboguer les problèmes en temps réel avec des journaux de panne, à analyser le code de l'application et à trouver le bon point d'erreur à partir du code lui-même.

    Certaines des fonctionnalités sont répertoriées ci-dessous.

    • Fournit des rapports d'erreurs en direct et précis
    • Prend en charge les rapports d'erreurs de pile complète
    • Surveillance de la session utilisateur en temps réel
    • Surveillance des performances du serveur et détection des goulots d'étranglement en temps réel

    Raygun vaut la peine d'investir du temps et de l'argent dans des applications critiques. Il fournit des informations qui peuvent se traduire par un excellent retour sur investissement.

    Moniteur d'état express

    Surveillance de l'état express est un outil open-source dédié à la surveillance d'ExpressJS. C'est un fait connu qu'ExpressJS est le framework Web le plus utilisé dans NodeJS.

    Comme vous pouvez le voir dans l'instantané ci-dessus, vous pouvez surveiller le temps de réponse, la fréquence des demandes, le code d'état, l'utilisation du processeur / de la mémoire et la charge moyenne.

    CliniqueJS

    Docteur ClinicJS

    Clinique.js est une bibliothèque disponible pour s'intégrer aux applications NodeJS pour surveiller et en extraire des paramètres de performances critiques. C'est une combinaison de trois outils principaux - Docteur, Bubbleprofainsi que Flamme. Chacun de ces outils est utilisé pour différentes mesures de surveillance.

    Docteur ClinicJS

    • Collecter des métriques de santé et d'heuristique
    • Injecter automatiquement des sondes dans l'application
    • Fournir une interface graphique pour afficher les performances de l'application et les métriques en direct
    • Générer des recommandations pour optimiser les applications

    CliniqueJS Bubbleprof

    • Tracez des graphiques à bulles décrivant l'exécution de l'application interne
    • Vous aide à identifier les erreurs en affichant les graphiques d'exécution des fonctions
    • Collecte des métriques à l'aide de hooks asynchrones
    • Fournit des informations de latence entre les appels de fonction

    CliniqueJS Flamme 

    • Surveillance des métriques CPU dédiées
    • Interface utilisateur graphique pour la surveillance en direct des performances du processeur de l'application
    • Génère des graphiques de flamme aidant à identifier les valeurs maximales atteintes par les métriques
    • Fournit un aperçu des activités consommatrices de CPU de votre application

    Un support commercial est disponible si vous en avez besoin pour votre entreprise.

    AppSignal

    AppSignal est un produit commercial offrant une auto-instrumentation pour les appels HTTP Node.js, Express, Next.js et Postgress.

    Pour démarrer, vous devez installer un agent AppSignal léger sur le serveur, qui collecte les métriques nécessaires. À un niveau élevé, il fait ce qui suit.

    • Surveiller les performances - recherchez et corrigez le code ou l'infrastructure, ce qui ralentit la disponibilité et les performances de l'application.
    • Métriques - visualisez ce qui compte pour vous sur le tableau de bord.
    • Détecter les anomalies - être averti lorsque les choses ne sont pas comme prévu.
    • Monitor Server - n'obtenez pas un autre logiciel de surveillance de serveur. Vous obtenez toutes les mesures de ressources standard telles que CPU, disque, mémoire, réseau, etc.

    Prométhée + Grafana

    L'idée est de combiner deux logiciels puissants - Prométhée et Grafana.

    Prometheus a un client pour Nodejs appelé client de bal, installé sur le serveur NodeJS pour collecter les métriques. Vous pouvez ensuite installer Grafana sur le même serveur ou à distance pour extraire les métriques de Prometheus pour les visualiser.

    Vous pouvez créer un tableau de bord Grafana à partir de zéro en fonction de l'exigence ou tirer parti des deux suivants.

    Cela nécessite que vous connaissiez les deux outils. Si vous avez besoin d'aide sur l'apprentissage de Prometheus, consultez ceci Cours Udemy.

    Conclusion

    La surveillance est souvent ignorée mais très critique pour la disponibilité des applications. Le coût du développement étant un facteur crucial, les outils qui analysent le code, surveillent les performances et fournissent un aperçu des erreurs, sont sûrs d'une grande valeur. Ils vous font gagner du temps et des efforts et vous aident à respecter les SLA en offrant une résolution plus rapide au client.