Traitement des incidents
Vous pourriez rencontrer les problèmes de surveillance suivants lors de la configuration et de la surveillance des applications d' Node.js s à l'aide d' Instana.
Pour plus d'informations sur la surveillance des applications Node.js, consultez la page Surveillance Node.js.
- Collecteur Node.js non installé
- Collecteur initialisé trop tard
- AutoProfile problème lié à l'absence ou au chargement d'un paquet
- Appels manquants ou en double
- Échec de la copie de la version précompilée
- URL s ECMAScript non prises en charge sur Windows
- Module de changement de version d'exécution manquant
Collecteur Node.js non installé
Type de problème de surveillance : nodejs_collector_not_installed
Le processus « Node.js » ne parvient pas à se connecter à l'agent pour envoyer les traces et les métriques.
Cause
Ce problème peut survenir pour l'une des raisons suivantes :
Installation incorrecte du
@instana/collectorpaquet : si le@instana/collectorpaquet a été ajouté à votre application et correctement activé, vous pouvez voir les entrées suivantes dans les journaux de votre application :Attempting agent communication via <hostname>:<port>Si vous ne voyez pas de message de ce type dans votre journal d'application, le package
@instana/collectorn'est probablement pas installé et initialisé correctement.Une intégration incorrecte du collecteur avec votre application Node.js peut nuire à la visibilité de votre application dans Instana. Bien que votre application s'affiche dans l' Instana, le traçage ne fonctionne que partiellement. Certains appels sont localisés, tandis que d'autres ne le sont pas.
Problèmes de connectivité réseau : si le collecteur « Node.js » est installé et que le message suivant apparaît dans les journaux de votre application, cela signifie que le
@instana/collectorpackage ne parvient pas à communiquer avec l'agent hôte en raison d'un problème de réseau :Announce attempt failed: <error>. Will retry in <seconds>s.
La solution
Pour résoudre ce problème, procédez au dépannage comme suit :
Vérification de l'intégration du collecteur
Pour vérifier l'intégration du collecteur, consultez les sections suivantes :
CommonJS
Si vous utilisez CommonJS,, appelez la fonction exportée par require('@instana/collector') immédiatement avant toute autre require instruction import ou. Vous pouvez appeler la fonction de l'une des manières suivantes :
Appelez la fonction en une seule instruction :
require('@instana/collector')()Appelez la fonction dans deux instructions consécutives comme suit :
// Correct: const instana = require('@instana/collector'); instana(); // this is fine // Now all other modules can be required: require('something'); require('another-thing'); ...
Les exemples suivants illustrent une intégration incorrecte du collecteur :
// WRONG!
require('@instana/collector'); // @instana/collector is not initialized
require('something');
require('another-thing');
...
// WRONG!
const instana = require('@instana/collector');
require('something');
require('another-thing');
instana(); // TOO LATE!
...
Modules ECMAScript
Si vous utilisez les modules ECMAScript (ESM), chargez et initialisez le collecteur à l'aide des indicateurs de chargement. N 'initialisez pas le collecteur dans le code comme suit :
import instana from '@instana/collector'
// Wrong!
instana()
import { something, else } from 'some-module';
Résolution des problèmes de réseau
Pour résoudre les problèmes de réseau, procédez comme suit :
Vérifiez que le processus Node.js peut se connecter à l'agent hôte sur le même hôte sur le port 42699. Pour plus d'informations sur la visibilité réseau requise, consultez la section « Configuration réseau requise pour l'agent hôte d' Instana ».
Dans les plateformes conteneurisées, vérifiez la visibilité réseau entre le conteneur contenant l'application à tracer et le conteneur de l'agent hôte d' Instana. Assurez-vous qu'il n'y a aucun problème de configuration du réseau superposé lorsque le conteneur d'application à tracer tente de se connecter au conteneur de l'agent d' Instana s sur le même hôte.
Assurez-vous que le collecteur Node.js utilise l'adresse IP ou le nom de domaine DNS correct pour communiquer avec l'agent Instana. Si vous devez modifier l'adresse réseau, vous pouvez demander au collecteur d' Node.js s d'utiliser la variable
INSTANA_AGENT_HOSTd'environnement.Assurez-vous que l'agent hôte écoute sur le port 42699. Si vous avez besoin d'une nouvelle affectation de port parce que l'agent hôte n'écoute pas sur le port 42699 mais sur un autre, vous pouvez configurer le collecteur pour qu'il utilise un autre port en utilisant la variable d'environnement
INSTANA_AGENT_PORT.
Si aucune des solutions précédentes ne vous aide à résoudre le problème, ouvrez un ticket d'assistance.
Collecteur initialisé trop tard
Type de problème de surveillance : nodejs_collector_initialized_too_late
Lorsque le @instana/collector module est initialisé après le chargement d'autres modules d' Node.js, vous pouvez consulter nodejs_collector_initialized_too_late l'avertissement affiché sur votre tableau de bord Node.js.
Cause
Cette erreur survient parce que d'autres paquets d' Node.js s ont été chargés avant que le @instana/collector paquet ne soit importé et initialisé. Pour plus d'informations, consultez les sections « Installation du collecteur d' Node.js s » et « Vérification de l'intégration du collecteur ».
La solution
Pour résoudre ce problème, mettez à jour votre code afin d'exiger et d'initialiser le package @instana/collector avant toute autre initialisation. Pour plus d'informations, voir Activation du collecteur.
AutoProfile problème lié à l'absence ou au chargement d'un paquet
Type de problème de surveillance : nodejs_collector_native_addon_autoprofile_missing
Vous avez configuré le processus « Node.js » pour qu'il utilise la fonctionnalité « AutoProfile » d' Instana, mais il se peut que le @instana/autoprofile paquet ne soit pas chargé. Par conséquent, vous n'obtenez pas d'informations de profilage pour cette application Node.js dans Instana.
Message d'erreur :
Could not load @instana/autoprofile. You will not get profiling information for this Node.js app in Instana, although autoprofiling has been enabled.
Cause
Le paquet @instana/autoprofile est une dépendance optionnelle de @instana/collector, et il est automatiquement installé lorsque cela est possible. Mais comme il s'agit d'un module complémentaire natif, son installation peut échouer. Pour plus d'informations, voir les modules complémentaires natifs.
L'échec de l'installation d' @instana/autoprofile, en particulier pour les applications conteneurisées, peut être dû à l'une des raisons suivantes :
L'absence des paquets du système d'exploitation nécessaires à la compilation du code d' C++. Ce problème survient lorsque ces paquets sont manquants sur la machine cible ou dans l'image du conteneur cible.
La manière dont l'image du conteneur est construite. Les packages Node.js doivent être installés sur l'image cible. L'exécution de
npm installouyarnsur un système de construction, puis la copie de l'intégralité du dossiernode_modulesdans une image de conteneur avec une architecture ou un système d'exploitation potentiellement différent ne fonctionne pas. Cette étape doit se dérouler à l'intérieur de l'image cible.Si les commandes
npm install --no-optionalouyarn --ignore-optionalsont utilisées pour installer des dépendances, le paquet peut également être manquant.Ce
@instana/autoprofilemodule n'est pas compatible avec la version actuelle d' Node.js.
La solution
Pour résoudre ce problème, vérifiez si votre version d' Node.js est prise en charge, puis exécutez la npm rebuild commande.
Appels manquants ou en double
Erreur :
Il arrive parfois que Instana ne parvienne pas à enregistrer certains appels ou affiche des appels en double, ce qui entraîne des données de traçage incomplètes ou inexactes.
Cause
Des appels manquants ou en double peuvent survenir pour les raisons suivantes :
- Déclencheurs non pris en charge : en règle générale, les traceurs d' Instana s ne capturent les appels sortants que lorsqu'un intervalle d'entrée actif existe. Dans certains cas particuliers, cette règle peut conduire à ce que des appels qui devraient être capturés ne le soient pas. Par exemple, lorsque le travail est déclenché par un mécanisme qui n'est pas pris en charge par l'instrumentation automatique d' Instana.
- Tracé avec plusieurs outils de traçage : l'utilisation d' Instana en association avec un outil de traçage tiers (tel que New Relic, Dynatrace ou Datadog ) au sein d'une même application Node.js peut entraîner des appels manquants ou dupliqués, ainsi que des échecs de l'instrumentation d' Node.js.
La solution
Pour résoudre ou éviter ce problème, procédez comme suit :
Utiliser le traçage personnalisé pour les déclencheurs non pris en charge : créez une plage d'entrée via le traçage personnalisé à l'aide du SDK Instana Node.js. Pour plus d'informations sur le SDK d' Node.js, consultez la section « Le traçage est désactivé lorsqu'il n'existe aucun intervalle d'entrée actif ».
Évitez d'utiliser plusieurs traceurs : évitez de tracer une seule application Node.js à l'aide de plusieurs traceurs simultanément.
Échec de la copie de la version précompilée
Message d'erreur :
Copying the precompiled build for event-loop-stats (linux/x64/musl/ABI 108) failed. [Error: ENOENT: no such file or directory, lstat '/tmp/event-loop-stats'] {
errno: -2,
code: 'ENOENT',
syscall: 'lstat',
path: '/tmp/event-loop-stats'
}
Cause
Cette erreur survient généralement lorsque l'outil « Node.js Tracer » tente de décompresser les binaires précompilés et que le dossier « tmp » n'est pas accessible en écriture (par exemple, dans les pods d' Kubernetes ).
La solution
Pour résoudre l'erreur de compilation liée à la copie de la version précompilée, vérifiez que le système n' est pas en mode lecture seule.
URL s ECMAScript non prises en charge sur Windows
Message d'erreur :
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader.
Cause
Cette erreur se produit lorsque vous indiquez un chemin d'accès absolu dans les commandes du chargeur.
La solution
Pour résoudre ce problème, ajoutez file:/// au début du chemin d'accès. Pour plus d'informations, consultez la section « Activer le collecteur » sur Windows.
Module de changement de version d'exécution manquant
Message d'erreur :
Error: Cannot find module '/opt/instana/instrumentation/nodejs/runtime-version-switch'
Require stack:
- internal/preload
at Module._resolveFilename (node:internal/modules/cjs/loader:1144:15)
at Module._load (node:internal/modules/cjs/loader:985:27)
at Function.patchedModuleLoad [as _load] (/opt/instana/instrumentation/nodejs/node_modules/@instana/core/src/util/requireHook.js:93:34)
Cause
Cette erreur s'affiche si la version de l'instrumentation du webhook AutoTrace est obsolète, alors que le collecteur Node.js a été mis à jour vers la dernière version. Cela est dû à la suppression du runtime-version-switch script du webhook AutoTrace.
La solution
Pour résoudre ce problème, procédez comme suit :
- Désinstallez le webhook « AutoTrace ».
- Redéployez le webhook « AutoTrace » pour appliquer les modifications.