Fehlerbehebung
Bei der Konfiguration und Überwachung von „ Node.js “-Anwendungen mit „ Instana “ können folgende Probleme bei der Überwachung auftreten.
Weitere Informationen zur Überwachung von „ Node.js “-Anwendungen finden Sie unter „ Node.js “.
- Node.js-Collector nicht installiert
- Collector zu spät initialisiert
- AutoProfile Paket fehlt oder es gibt ein Problem beim Laden
- Fehlende oder doppelte Anrufe
- Fehler beim Kopieren der vorkompilierten Version
- Nicht unterstütztes ECMAScript- URL -Schema auf Windows
- Modul zum Wechseln der Laufzeitversion fehlt
Node.js-Collector nicht installiert
Art des Überwachungsproblems: nodejs_collector_not_installed
Der Prozess „ Node.js “ kann keine Verbindung zum Agenten herstellen, um Traces und Metriken zu senden.
Ursache
Dieses Problem kann aus einem der folgenden Gründe auftreten:
Fehlerhafte Installation des
@instana/collectorPakets: Wenn das@instana/collectorPaket zu Ihrer Anwendung hinzugefügt und korrekt aktiviert wurde, finden Sie folgende Einträge in Ihren Anwendungsprotokollen:Attempting agent communication via <hostname>:<port>Wenn Sie keine solche Nachricht in Ihrem Anwendungsprotokoll sehen, ist das
@instana/collector-Paket wahrscheinlich nicht ordnungsgemäß installiert und initialisiert.Eine fehlerhafte Integration des Collectors in Ihre „ Node.js “-Anwendung kann die Beobachtbarkeit Ihrer Anwendung in „ Instana “ beeinträchtigen. Obwohl Ihre Anwendung unter Instana angezeigt wird, funktioniert die Ablaufverfolgung nur teilweise. Manche Anrufe werden zurückverfolgt, andere hingegen verpasst.
Probleme mit der Netzwerkverbindung: Wenn der „ Node.js “-Kollektor installiert ist und die folgende Meldung in Ihren Anwendungsprotokollen angezeigt wird, kann das
@instana/collectorPaket aufgrund eines Netzwerkproblems nicht mit dem Host-Agenten kommunizieren:Announce attempt failed: <error>. Will retry in <seconds>s.
Lösung
Um dieses Problem zu beheben, führen Sie folgende Fehlerbehebung durch:
Überprüfung der Kollektorintegration
Informationen zur Überprüfung der Collector-Integration finden Sie in den folgenden Abschnitten:
CommonJS
Wenn Sie „ CommonJS, “ verwenden, rufen Sie die von require('@instana/collector') „immediately“ exportierte Funktion unmittelbar vor allen anderen require „or“- oder import „statements“-Anweisungen auf. Sie können die Funktion auf eine der folgenden Arten aufrufen:
Rufe die Funktion in einer einzigen Anweisung auf:
require('@instana/collector')()Rufen Sie die Funktion wie folgt in zwei aufeinanderfolgenden Anweisungen auf:
// Correct: const instana = require('@instana/collector'); instana(); // this is fine // Now all other modules can be required: require('something'); require('another-thing'); ...
Die folgenden Beispiele zeigen eine fehlerhafte Integration des Collectors:
// 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!
...
ECMAScript-Module
Wenn Sie ECMAScript-Module (ESM) verwenden, laden und initialisieren Sie den Collector mithilfe der Ladeflags. Initialisieren Sie den Collector im Code nicht wie folgt:
import instana from '@instana/collector'
// Wrong!
instana()
import { something, else } from 'some-module';
Behebung von Netzwerkproblemen
Um Netzwerkprobleme zu beheben, gehen Sie wie folgt vor:
Überprüfen Sie, ob der Node.js -Prozess eine Verbindung zum Host-Agenten auf demselben Host über Port 42699 herstellen kann. Weitere Informationen zur erforderlichen Netzwerktransparenz finden Sie unter „Netzwerkanforderungen für den Host-Agenten von Instana “.
Überprüfen Sie bei containerisierten Plattformen die Netzwerkverbindungen zwischen dem Container mit der zu verfolgenden Anwendung und dem Container des Host-Agenten von „ Instana “. Stellen Sie sicher, dass keine Probleme bei der Einrichtung des Overlay-Netzwerks vorliegen, wenn der zu überwachende Anwendungscontainer versucht, eine Verbindung zum „ Instana “-Agent-Container auf demselben Host herzustellen.
Stellen Sie sicher, dass der „ Node.js “-Collector die richtige IP-Adresse oder den richtigen DNS -Namen verwendet, um mit dem „ Instana “-Agenten zu kommunizieren. Wenn Sie die Netzwerkadresse ändern müssen, können Sie den „ Node.js “-Collector anweisen, die
INSTANA_AGENT_HOSTUmgebungsvariable zu verwenden.Stellen Sie sicher, dass der Host-Agent Port 42699 überwacht. Wenn Sie eine Neuzuordnung des Ports benötigen, weil der Host-Agent nicht Port 42699, sondern einen anderen Port überwacht, können Sie den Collector mithilfe der Umgebungsvariablen
INSTANA_AGENT_PORTfür die Verwendung eines anderen Ports konfigurieren.
Wenn keine der oben genannten Lösungen bei der Behebung des Problems hilft, öffnen Sie ein Support-Ticket.
Collector zu spät initialisiert
Art des Überwachungsproblems: nodejs_collector_initialized_too_late
Wenn das @instana/collector Paket initialisiert wird, nachdem andere Pakete von „ Node.js “ geladen wurden, können Sie die nodejs_collector_initialized_too_late angezeigte Warnung auf Ihrem „ Node.js “-Dashboard einsehen.
Ursache
Dieser Fehler tritt auf, weil andere Pakete von „ Node.js “ geladen wurden, bevor das @instana/collector Paket aufgerufen und initialisiert wurde. Weitere Informationen finden Sie unter „Installieren des „ Node.js “-Kollektors “ und „Überprüfen der Kollektorintegration “.
Lösung
Um dieses Problem zu beheben, aktualisieren Sie Ihren Code, sodass das Paket @instana/collector vor allen anderen Initialisierungen angefordert und initialisiert wird. Weitere Informationen finden Sie unter "Aktivieren des Collectors ".
AutoProfile Paket fehlt oder es gibt ein Problem beim Laden
Art des Überwachungsproblems: nodejs_collector_native_addon_autoprofile_missing
Sie haben den Prozess „ Node.js “ so konfiguriert, dass er die Funktion „ AutoProfile “ von „ Instana “ nutzt, doch das Paket ist @instana/autoprofile möglicherweise nicht geladen. Daher werden in „ Instana “ keine Profiling-Informationen für diese Anwendung unter „ Node.js “ angezeigt.
Fehlermeldung :
Could not load @instana/autoprofile. You will not get profiling information for this Node.js app in Instana, although autoprofiling has been enabled.
Ursache
Das Paket @instana/autoprofile ist eine optionale Abhängigkeit von @instana/collector und wird nach Möglichkeit automatisch installiert. Da es sich jedoch um ein natives Add-on handelt, kann die Installation fehlschlagen. Weitere Informationen finden Sie unter Native Add-ons.
Der Installationsfehler von @instana/autoprofile (insbesondere bei containerisierten Anwendungen) kann auf einen der folgenden Gründe zurückzuführen sein:
Das Fehlen der erforderlichen Betriebssystempakete für die Erstellung von Code für „ C++ “. Dieses Problem tritt auf, wenn diese Pakete auf dem Zielcomputer oder im Ziel-Container-Image fehlen.
Die Art und Weise, wie das Bild des Containers aufgebaut ist. Node.js-Pakete müssen auf dem Zielimage installiert werden. Es funktioniert nicht,
npm installoderyarnauf einem Build-System auszuführen und dann den gesamten Ordnernode_modulesin ein Container-Image mit einer möglicherweise anderen Architektur oder einem anderen Betriebssystem zu kopieren. Dieser Schritt muss innerhalb des Zielbildes erfolgen.Wenn die Befehle
npm install --no-optionaloderyarn --ignore-optionalzur Installation von Abhängigkeiten verwendet werden, kann das Paket ebenfalls fehlen.Das
@instana/autoprofileModul ist nicht mit der aktuellen Version von „ Node.js “ kompatibel.
Lösung
Um dieses Problem zu beheben, überprüfen Sie bitte, ob Ihre Version von „ Node.js “ unterstützt wird, und führen Sie den npm rebuild Befehl aus.
Fehlende oder doppelte Anrufe
Fehler :
Es kann vorkommen, dass „ Instana “ einige Anrufe nicht erfasst oder doppelte Anrufe anzeigt, was zu unvollständigen oder ungenauen Rückverfolgungsdaten führt.
Ursache
Fehlende oder doppelte Anrufe können aus folgenden Gründen auftreten:
- Nicht unterstützte Trigger: In der Regel erfassen „ Instana “-Tracer nur ausgehende Aufrufe, wenn ein aktiver Eintrag-Span vorhanden ist. In einigen Grenzfällen kann diese Regel dazu führen, dass Anrufe, von denen Sie erwarten, dass sie erfasst werden, nicht erfasst werden. Beispielsweise wenn die Ausführung durch einen Mechanismus ausgelöst wird, der von der automatischen Instrumentierung von „ Instana “ nicht unterstützt wird.
- Tracing mit mehreren Tracern: Die Verwendung von „ Instana “ zusammen mit einem Tracer eines Drittanbieters (wie z. B. New Relic, Dynatrace oder Datadog ) in derselben „ Node.js “-Anwendung kann dazu führen, dass Aufrufe fehlen oder doppelt vorhanden sind und die Instrumentierung von „ Node.js “ fehlschlägt.
Lösung
Um dieses Problem zu beheben oder zu vermeiden, führen Sie die folgenden Schritte aus:
Benutzerdefinierte Ablaufverfolgung für nicht unterstützte Trigger verwenden: Erstellen Sie einen Eintrag über die benutzerdefinierte Ablaufverfolgung mithilfe des SDK „ Instana “ ( Node.js ). Weitere Informationen zum SDK „ Node.js “ finden Sie unter „Tracing ist inaktiv, wenn kein aktiver Eintragsschnittpunkt vorhanden ist“.
Vermeiden Sie die Überwachung mit mehreren Tracern: Überwachen Sie eine einzelne „ Node.js “-Anwendung nicht gleichzeitig mit mehreren Tracern.
Fehler beim Kopieren der vorkompilierten Version
Fehlermeldung :
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'
}
Ursache
Dieser Fehler tritt in der Regel auf, wenn der „ Node.js -Tracer“ versucht, die vorkompilierten Binärdateien zu entpacken, und der Ordner „tmp“ nicht beschreibbar ist (beispielsweise in Pods von „ Kubernetes “).
Lösung
Um den Fehler beim Kopieren des vorkompilierten Builds zu beheben, überprüfen Sie, ob sich das System nicht im schreibgeschützten Modus befindet.
Nicht unterstütztes ECMAScript- URL -Schema auf Windows
Fehlermeldung :
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only file and data URLs are supported by the default ESM loader.
Ursache
Dieser Fehler tritt auf, wenn Sie in den Loader-Befehlen einen absoluten Pfad angeben.
Lösung
Um dieses Problem zu beheben, fügen Sie file:/// dem Pfad „/“ vor. Weitere Informationen finden Sie unter „Collector aktivieren “ auf Windows.
Modul zum Wechseln der Laufzeitversion fehlt
Fehlermeldung :
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)
Ursache
Dieser Fehler wird angezeigt, wenn die Version der Webhook-Instrumentierung unter AutoTrace veraltet ist, der Collector unter Node.js jedoch auf die neueste Version aktualisiert wurde. Dies geschieht aufgrund der Entfernung des runtime-version-switch Skripts aus dem Webhook unter AutoTrace.
Lösung
Führen Sie die folgenden Schritte aus, um dieses Problem zu beheben:
- Deinstallieren Sie den Webhook „ AutoTrace “.
- Starten Sie den Webhook „ AutoTrace “ neu, um die Änderungen zu übernehmen.