Monitoring Node.js
Sie können den Instana-Kollektor Node.js verwenden, um Node.js -Anwendungen zu überwachen.
- Instanziierung des Node.js -Collectors
- Einschränkungen
- Instana-Kollektor Node.js installieren
- Kollektor Node.js konfigurieren
- API
- Unterstützte Node.js-Versionen
- Unterstützte Bibliotheken
- Metriken anzeigen
- Unterstützung für Zustandsprüfung
- Node.js EOL-Versionswarnung
- Tracing-Unterstützung
- OpenCensus-Trace-Exportfunktion von Instana
- AutoProfile™
- Überwachungsprobleme
- Verwandte Themen
Kollektor ' Instana Node.js '
Der Instana Node.js-Kollektor ist ein npm-Paket, das Sie zu den Abhängigkeiten Ihrer Node.js-Anwendungen hinzufügen. Es ermöglicht die Sammlung von Metriken und die automatische Rückverfolgung sowie die Meldung von Metriken und Rückverfolgungen an Instana.
Einschränkungen
Das Node.js -Kollektorpaket von Instana dient zur Überwachung von Node.js -Serveranwendungen mit Instana.
Informationen zur Überwachung von JavaScript -Anwendungen, die auf den folgenden Plattformen ausgeführt werden, finden Sie auf der entsprechenden Seite:
Browser: Website-Überwachung
Amazon Web Services (AWS): AWS Lambda oder AWS Fargate
Microsoft Azure: Azure App Services
Google Cloud: Google Cloud Ausführen
Instana-Kollektor Node.js installieren
Installieren Sie das npm-Paket @instana/collector
mit dem folgenden Befehl, um den Instana-Kollektor Node.js zu installieren und Instana für die Überwachung Ihrer Node.js -Anwendungen zu aktivieren:
npm install --save @instana/collector
Nach der Installation des Kollektors müssen Sie den Kollektor in der Anwendung aktivieren. Damit der Collector ordnungsgemäß aktiviert wird, müssen Sie ihn laden und initialisieren, bevor andere Dateien geladen werden. Fügen Sie dazu die folgende Zeile als erste Anweisung zum Anwendungscode hinzu:
require('@instana/collector')();
// All other require statements must be done after the collector is initialized.
// Note the () after the require statement of the collector which initializes it.
// const express = require('express');
Weitere Informationen finden Sie unter Kollektor für Node.js.
Kubernetes
Wenn Ihre Node.js-Anwendungen ausschließlich auf Kubernetes laufen, können Sie stattdessen die Instana AutoTrace Webhook-Methode verwenden, die keine Änderungen an Ihren Anwendungen erfordert.
Wenn Sie den Instana AutoTrace Webhook verwenden und planen, das Instana Node.js SDK zu verwenden, lesen Sie den Abschnitt Verwendung der API zusammen mit dem AutoTrace Webhook.
Apigee Microgateway
Weitere Informationen zur Verwendung des Instana-Pakets für den Node.js -Collector mit Apigee Microgateway (auch bekannt als edgemicro
) finden Sie auf der Seite Apigee Microgateway.
Kollektor ' Node.js ' konfigurieren
Weitere Informationen zur Konfiguration des Kollektors 'Instana Node.js ' finden Sie unter Konfiguration des Kollektors 'Node.js '.
Kubernetes und Red Hat OpenShift
Wenn Ihre Node.js -Anwendung und der Instantagent in einem Kubernetes -Cluster ausgeführt werden, müssen Sie den Netzzugriff für überwachte Anwendungen konfigurieren. Weitere Informationen finden Sie unter Kubernetes -Netzzugriff.
Cloud Foundry
Anmerkungen:
Der Instanagent kann auf den Diego-Zellen der Cloud Foundry -Basis ausgeführt werden. Diego-Zellen sind die grundlegenden Ausführungseinheiten innerhalb der Diego-Laufzeit von Cloud Foundry . Sie stellen die erforderliche Infrastruktur für die Ausführung von Anwendungen in Cloud Foundrybereit. Jede Diego-Zelle ist eine virtuelle oder physische Maschine, die für die Verwaltung und Ausführung von Anwendungsinstanzen verantwortlich ist, einschließlich Tasks wie Planung, Skalierung und Statusüberwachung. Ohne einen Agenten, der in der zugrunde liegenden Diego-Zelle ausgeführt wird, wird die Überwachung von Cloud Foundry -Anwendungen nicht unterstützt.
Für Tile 1.177.0 und höhere Versionen automatisiert
instana_buildpack
die Konfiguration von Node.js -Anwendungen in Cloud Foundry. Weitere Informationen finden Sie unter Instana buildpack.
Weitere Informationen zum Einrichten von Instana-Hostagenten und den zugehörigen Cloud Foundry -oder Pivotal-Plattformfunktionen finden Sie unter Cloud Foundry und Pivotal Platform.
Auf Cloud Foundry ist keine Konfiguration auf der Ebene von cf push
und beim Anwendungsmanifest erforderlich. Der einzige erforderliche Schritt besteht darin, das Paket @instana/collector
wie beschrieben zur Cloud Foundry Node.js hinzuzufügen.
-API
Das Kollektorpaket Node.js von Instana stellt eine API für die angepasste Traceerstellung bereit. Weitere Informationen finden Sie auf der API-Seite.
Unterstützte Node.js -Versionen
Der Node.js-Collector von Instana unterstützt die folgenden Node.js-Versionen:
Node.js -Versionen | Collector-Versionen |
---|---|
23.23.0.0 und später | 3.3.21.0 - zuletzt |
22.0.0 und höher | 3.7.0 -neueste |
21.0.0 und höher | 3.0.0 -neueste |
20.3.0 und höher | 2.26.0 -neueste |
18.0.0 und höher | 2.4.0 -neueste |
16.0.0 und höher | 1.125.0 - aktuellste |
14.0.0 und höher | 1.97.0 - aktuellste |
12.0.0 und höher | 1.67.0 - aktuellste |
10.4.0 und höher | 1.38.0 - aktuellste |
8.2.1 und höher | 1.28.0 - 1.x |
6.0.0 und höher | 1.0.0 - 1.x |
4.5 und höher | 1.0.0 - 1.103.0 |
5.10 und höher | 1.0.0 - 1.103.0 |
-Hauptkollektorversionen
- Aktuelle Hauptversion: Version 3
- Vorherige Hauptversion: Version 2
Für die Vorgängerversion werden nur die Sicherheit mit dem Schweregrad Hoch und Fehlerkorrekturen freigegeben. Sie müssen zur aktuellen Hauptversion wechseln.
Langfristige Unterstützung
Die Node.js -Überwachungsunterstützung für Instana folgt dem offiziellen LTS-Zeitplan und dem EOL-Zeitplan (EOL-End-of-Life) aus Node.js.
Wenn eine Node.js -Version ihr EOL-Datum erreicht, wird ihr ein zusätzlicher Unterstützungszeitraum von ein bis zwei Jahren angeboten. Aktualisieren Sie Ihre Node.js -Version regelmäßig, um Probleme zu vermeiden.
Die Unterstützung für Node.js 10 und 12 wird im Paket @instana/collector@3.x
eingestellt. Wenn Sie diese Node.js -Versionen weiterhin bevorzugen, verwenden Sie das Paket @instana/collector@2
.
Die Unterstützung für Node.js 6 und 8 wird im Paket @instana/collector@2.x
eingestellt. Wenn Sie diese Node.js -Versionen weiterhin bevorzugen, verwenden Sie das Paket @instana/collector@1
.
-Versionssteuerung
Die Instana npm-Pakete entsprechen der semver-Spezifikation.
Hinweise:
npm install @instana/collector@latest
installiert immer die neueste Hauptversion.Sie können die Version des Kollektors in Ihrer Datei
package.json
pinnen, indem Sie beispielsweise einen Versionsbereich wie@instana/collector: ^3.x.y
verwenden. Das bedeutet, dass Sie automatisch neue Funktionen (Nebenreleases) und Fehlerkorrekturen (Patch-Releases) erhalten, aber ein Hauptversionsupdate wie Version 2 bis 3 erfordert eine manuelle Konfiguration. Weitere Informationen finden Sie in der Liste der unterbrechenden Änderungen.
Weitere Informationen zum Versionssteuerungsschema für AWS Fargate und Google Cloud Run container base images finden Sie in den entsprechenden Abschnitten:
Änderungen aufheben
Eine detaillierte Liste der Änderungen für jede Version (einschließlich unterbrechender Änderungen für Hauptversionen) finden Sie auch im GitHub -Änderungsprotokoll.
Upgrade von Version 2 auf 3
Die Unterstützung für die folgenden Technologien wird eingestellt. Weitere Informationen zu unterbrechenden Änderungen in Version 3 finden Sie unter GitHub -Änderungsprotokoll.
Die Unterstützung für Node.js 10 und 12 wird eingestellt. Führen Sie ein Upgrade auf Node.js 14.0.0 oder höher durch.
Das
/opt/instana/instrumentation/nodejs/runtime-version-switch
interne Skript wird aus dem Instana AutoTrace Webhook entfernt. Wenn Sie dieruntime-version-switch module not found
Fehlermeldung, siehe Fehlerbehebung .Die Unterstützung für die Elasticsearch -Bibliothek wurde entfernt.
Wichtig:Vor der Aktualisierung auf Version 3 müssen Sie auf @elastic/elasticsearchmigrieren.
Die Unterstützung für die BibliothekgRPC wurde entfernt.
Wichtig: Vor der Aktualisierung auf Version 3 müssen Sie auf @grpc/grpc-jsmigrieren.
Die Unterstützung für node-redis 0 wird eingestellt. Weitere Informationen finden Sie unter node-redis.
Die Unterstützung für MSSQL 8 wird eingestellt. Weitere Informationen finden Sie unter node-mssql.
Die Unterstützung für GraphQL 14 wird eingestellt. Weitere Informationen finden Sie unter graphql-js.
Die Bibliothek 'kafka-node' ist offiziell veraltet.
Die Unterstützung für fastify 1 wird eingestellt.
Upgrade von Version 1 auf 2
Weitere Informationen zu unterbrechenden Änderungen in Version 2 finden Sie unter GitHub -Änderungsprotokoll.
Die Unterstützung für Knoten 6 und 8 wird mit Version 2.0.0 aller Instana npm-Pakete (
@instana/collector
,@instana/aws-fargate
,@instana/aws-lambda
und@instana/google-cloud-run
) gelöscht. Führen Sie ein Upgrade Ihrer Node.js -Version auf mindestens 10.4.0durch.Die Unterstützung für
reportUncaughtException
wurde entfernt. Dieses Feature ist seit Version 1.112.0veraltet. Wenn Sie diese Funktion zuvor verwendet haben, können Sie sich stattdessen auf die Funktion Erkennung abnormaler Prozessbeendigungen verlassen. Die Erkennung abnormaler Prozessbeendigungen ist standardmäßig aktiviert.Die Konfigurationsoption
timeBetweenHealthcheckCalls
wurde voninstana({ tracing: { timeBetweenHealthcheckCalls: Boolean }})
nachinstana({ tracing: { metrics: { timeBetweenHealthcheckCalls }}})
verschoben. Weitere Informationen finden Sie unter Vollständige Konfigurationsreferenz.Die Konfigurationsoption für
logger
wurde entfernt. Sie könneninstana({logger: logger})
nicht mehr verwenden. Verwenden Sie stattdesseninstana.setLogger(logger)
. Weitere Informationen finden Sie im Abschnitt Protokollfunktion nach Initialisierung festlegen.Die Konfigurationsoption
disableAutomaticTracing
wurde entfernt. Sie könneninstana({ tracing: { disableAutomaticTracing: Boolean }})
nicht mehr verwenden. Verwenden Sie stattdesseninstana({ tracing: { automaticTracingEnabled: Boolean }})
. Weitere Informationen finden Sie unter Automatische Traceerstellung inaktivieren.
Unterstützte Bibliotheken
HTTP
Die Spalte "Collectorversion" gibt die Mindestversion des @instana/collector
-Pakets an, die für ein bestimmtes Feature erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version |
---|---|---|
Express -Fehlerbehandlung und -Pfadvorlagen | 45 Tage | 1.32.0, 1.43.0 |
Fastify Pfadvorlagen | 45 Tage | 1.44.0 |
HTTP (s) -Clients | 0 Tag | 1.10.0 |
HTTP (s) -Server | 0 Tag | 1.10.0 |
HTTP/2 -Clients | 0 Tag | 1.103.0 |
HTTP/2 -Server | 0 Tag | 1.103.0 |
hapi Pfadvorlagen | 45 Tage | 1.68.0 |
Pfadvorlagen für koa-router | 45 Tage | 1.56.0 |
request-promise[1] | 45 Tage | 1.10.0 |
anforderung[2] | 45 Tage | 1.10.0 |
Superagent | 45 Tage | 1.102.0 |
abrufen | 0 Tag | 2.15.0 |
TSOA | 45 Tage | 1.140.0 |
RPC
Die Spalte "Collectorversion" gibt die Mindestversion des @instana/collector
-Pakets an, die für ein bestimmtes Feature erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version |
---|---|---|
Apollo-Föderation[3] | 45 Tage | 1.87.0 |
Apollo-Unterdiagramm | 45 Tage | 3.1.2 |
JavaScript gRPC | 45 Tage | 1.5.7 |
GraphQL | 45 Tage | 1.69.0 |
-Datenbanken
Die Spalte "Collectorversion" gibt die Mindestversion des @instana/collector
-Pakets an, die für ein bestimmtes Feature erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version |
---|---|---|
AWS SDK v2 S3 | 45 Tage | 1.115.0 |
AWS SDK v3 S3 | 45 Tage | 1.129.0 |
AWS SDK v2 DynamoDB | 45 Tage | 1.116.0 |
AWS SDK v3 DynamoDB | 45 Tage | 1.127.0 |
Elasticsearch -Client (@elastic/elasticsearch ) |
45 Tage | 1.96.0 |
Memcached (memcached ) (>= 2.2.2) |
45 Tage | 1.126.0 |
MongoDB (mongodb ) (>= 2.2) |
45 Tage | 1.13.0 |
Mongoose (mongoose ) |
45 Tage | 1.13.0 |
MySQL (mysql ) |
45 Tage | 1.29.0 |
MySQL (mysql2 ) |
45 Tage | 1.37.1 |
MSSQL (mssql ) |
45 Tage | 1.47.0 |
Prisma | 45 Tage | 2.11.0 |
Postgres (pg ) |
45 Tage | 1.44.2 |
Postgres (pg-native ) |
45 Tage | 1.86.0 |
Redis (redis ) |
45 Tage | 1.31.0 |
Redis (ioredis ) |
45 Tage | 1.33.0 |
Sequelize | 45 Tage | Abhängig von der spezifischen Version eines Treibers[4] |
IBM Db2 | 45 Tage | 2.2.0 |
Couchbase | 45 Tage | 2.21.0 |
-Messaging
Die Spalte "Collectorversion" gibt die Mindestversion des @instana/collector
-Pakets an, die für ein bestimmtes Feature erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version |
---|---|---|
AWS SNS SDK v2[5] [5] | 45 Tage | 1.136.0 |
AWS SQS SDK v2[5: 1] [6: 1] | 45 Tage | 1.114.0 |
AWS SQS SDK v3[5: 2] [6: 2] | 45 Tage | 1.132.0 |
AWS SDK v2 Kinesis | 45 Tage | 1.120.0 |
AWS SDK v3 Kinesis | 45 Tage | 2.30.0 |
AWS SDK v2 Lambda | 45 Tage | 1.122.0 |
AWS SDK v3 Lambda | 45 Tage | 2.34.0 |
Google Cloud PubSub [5:3] (>=1.2.0 ) | 45 Tage | 1.107.0 |
NATS-Streaming[5: 4] [7] | 45 Tage | 1.72.0 |
NATS[5: 5] [7: 1] | 45 Tage | 1.72.0 |
RabbitMQ /amqplib [5:6] | 45 Tage | 1.51.0 |
kafka-node [5:7] [7: 2] [8] | 45 Tage | 1.20.0 |
kafkajs[5: 8] | 45 Tage | 1.83.0 |
node-rdkafka[5: 9] [7: 3] [9] | 45 Tage | 1.139.0 |
kafka-avro[5:10] [7: 4] | 45 Tage | 1.139.0 |
Bulle[10] | 45 Tage | 1.119.0 |
SQS-Konsument | 45 Tage | 1.119.3 |
Cloud-Services
Die Spalte "Collectorversion" gibt die Mindestversion des @instana/collector
-Pakets an, die für ein bestimmtes Feature erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Seit Collector-Version |
---|---|---|
AWS SDK v2 SQS[5:11] [6: 3] | 45 Tage | 1.114.0 |
AWS SDK v3 SQS[5:12] [6: 4] | 45 Tage | 1.132.0 |
AWS SDK v2 S3 | 45 Tage | 1.115.0 |
AWS SDK v3 S3 | 45 Tage | 1.129.0 |
AWS SDK v2 DynamoDB | 45 Tage | 1.116.0 |
AWS SDK v3 DynamoDB | 45 Tage | 1.127.0 |
AWS SDK v2 SNS | 45 Tage | 1.136.0 |
AWS SDK v2 Kinesis | 45 Tage | 1.120.0 |
AWS SDK v3 Kinesis | 45 Tage | 2.30.0 |
AWS SDK v2 Lambda | 45 Tage | 1.122.0 |
AWS SDK v3 Lambda | 45 Tage | 2.34.0 |
Google Cloud Storage | 45 Tage | 1.105.0 |
Google Cloud PubSub [5:13] (>=1.2.0 ) | 45 Tage | 1.107.0 |
SQS-Konsument | 45 Tage | 1.119.3 |
Azure Storage-Blob | 45 Tage | 3.4.0 |
Protokollierung
Die Spalte 'Kollektorversion' gibt die Mindestversion des @instana/collector
-Pakets an, die für eine bestimmte Funktion erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version |
---|---|---|
Bunyan | 45 Tage | 1.54.0 |
express-winston[11] | 45 Tage | 1.88.0 |
log4js | 45 Tage | 1.84.0 |
Pino | 45 Tage | 1.52.0 |
Winston (> = 3.x) | 45 Tage | 1.53.0 |
Winston (< = 2.x) | 45 Tage | 1.88.0 |
Asynchron
Die Spalte "Collectorversion" gibt die Mindestversion des @instana/collector
-Pakets an, die für ein bestimmtes Feature erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version |
---|---|---|
asynchron | 45 Tage | 1.10.0 |
Bluebird | 45 Tage | 1.35.0 |
Native Zusagen | 0 Tag | 1.10.0 |
q[12] | 45 Tage | 1.10.0 |
Zeitgeber | 0 Tag | 1.10.0 |
Andere
Die Spalte 'Kollektorversion' enthält die Mindestversion des @instana/collector
-Pakets, die für eine bestimmte Funktion erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Collector-Version | Kommentar |
---|---|---|---|
Apigee Microgateway/edgemicro (2.4, 2.5, > = 3.x) | 45 Tage | 1.89.0 | Erfordert zusätzliche Installationsschritte.[13] |
OpenTelemetry -Instrumentierungen
Instana verwendet bestimmte OpenTelemetry -Anweisungen, um die Bibliotheksabdeckung zu erhöhen.
Die Spalte 'Kollektorversion' in der folgenden Tabelle enthält die Mindestversion des Instana-Kollektors Node.js , die für eine Funktion erforderlich ist. Weitere Informationen finden Sie im GitHub -Änderungsprotokoll.
Bibliothek | Support-Richtlinie | Seit Collector-Version |
---|---|---|
socket.io |
45 Tage | 2.24.0 |
socket.io-client |
45 Tage | 2.24.0 |
restify |
45 Tage | 2.24.0 |
fs |
45 Tage | 2.24.0 |
tedious [14] |
45 Tage | 3.2.0 |
Wenn Probleme mit der OpenTelemetry -Integration auftreten, können Sie sie inaktivieren. Weitere Informationen zum Inaktivieren der Integration finden Sie unter OpenTelemetry -Integration inaktivieren.
Metriken anzeigen
Gehen Sie wie folgt vor, um die Metriken anzuzeigen:
- Wählen Sie in der Seitenleiste der Instana-Benutzerschnittstelle Infrastrukturaus.
- Klicken Sie auf einen bestimmten überwachten Host.
Sie können ein Host-Dashboard mit allen erfassten Metriken und überwachten Prozessen anzeigen.
Verfolgte Konfiguration | Metriken |
---|---|
Laufzeitversionen | GC-Aktivität |
Implementierte Apps | Speicherbelegung |
Name | Heapspeicherbereiche |
Version | Ereignisschleife |
Beschreibung | HTTP-Server - Anforderungs-/Antwortzeiten |
Argumente | Zustandsprüfungsstatus und Zeitpunkt der letzten Statusänderung |
Abhängigkeiten | |
HTTP-Server-Konfiguration | |
Statusprüfungen (über admin-plugin-healthcheck) |
Die Abhängigkeiten eines Node.js -Prozesses können auch vom API-Endpunkt für Softwareversionenabgerufen werden.
Signaturen Allgemeinzustand
- Garbage-Collection-Aktivität
- Latenzzeit
- Aufrufe
- Fehler
- Fehlgeschlagene Statusprüfungen (siehe Health Check Support)
Unterstützung für Statusprüfung
Der Instana-Kollektor Node.js führt angepasste Statusprüfungen durch und führt sie alle zehn Sekunden aus. Wenn die Prüfungen für mindestens 30 Sekunden fehlschlagen, tritt ein Problem auf, um den Benutzer zu informieren.
Statusprüfungen werden aus installierten admin-plugin-healthcheck -Modulen zusammengestellt.
Statusprüfungen werden im Dashboard Node.js aufgelistet. Anschließend wird ein Problem bezüglich fehlgeschlagener Statusprüfungen ausgelöst.
Node.js EOL-Versionswarnung
Ab 1.136.0sendet der Kollektor ein Problemereignis , wenn Anwendungen unter einer EOL-Version (End of Life, Ende des Lebenszyklus) von Node.jsausgeführt werden.
EOL Node.js-Versionen erhalten keine Updates mehr, wodurch Anwendungen anfällig für Sicherheitsprobleme sind und wichtige Laufzeitverbesserungen, wie die Optimierung des CPU- und Speicherbedarfs, verpassen.
Kunden, die sich auf diese Versionen verlassen, sollten ein Update auf aktive Versionen von Node.jsdurchführen.
Wichtig: Trotz der Empfehlung, aktiv verwaltete Laufzeiten zu verwenden, unterstützt Instana ältere Versionen von Node.js.
Traceunterstützung
Instana unterstützt die folgende Traceerstellung:
- Automatische Traceerstellung für alle Anforderungen (nach der Installation des npm-Pakets '@instana/collector') Weitere Informationen finden Sie unter Unterstützte Bibliotheken und Unterstützte Technologien.
- Optionale manuelle Traceerstellung (zusätzlich zur automatischen Traceerstellung) über das angepasste Trace-SDK.
- Hostübergreifendes und sprachübergreifendes Tracing.
- OpenTracing. Weitere Informationen finden Sie unter OpenTracing -API.
OpenCensus Instana Trace Exporter
Instana stellt ein OpenCensus Trace Exporter für Anwendungen bereit, die in Node.jsgeschrieben sind. Durch Verwendung der Instana-Agentenprozesse als Proxy leitet Instana Traces, die von Anwendungen exportiert werden, die mit Census instrumentiert sind, an das Instana-Back-End weiter.
Weitere Informationen finden Sie auf der Website OpenCensus Exporters .
AutoProfile™
Diese Funktion befindet sich in der öffentlichen Vorschau.
AutoProfile™ generiert und meldet Prozessprofile automatisch und kontinuierlich an Instana. Weitere Informationen zu Profilen finden Sie unter Profile analysieren.
Informationen zum Aktivieren von AutoProfile™finden Sie unter Node.js -Kollektorkonfiguration.
Monitoring-Probleme
Node.js -Collector nicht installiert
Überwachungsproblemtyp: nodejs_collector_not_installed
Der Node.js -Prozess stellt aus einem der folgenden Gründe keine Verbindung zum Agenten her, um Traces und Metriken zu senden:
- Das Paket
@instana/collector
ist in der Anwendung Node.js nicht ordnungsgemäß installiert. - Der Node.js-Prozess kann aufgrund von Problemen bei der Netzkonnektivität keine Berichte an den Hostagenten auf demselben Host senden.
Prüfen Sie, ob der Prozess instrumentiert ist.
Wenn das Paket @instana/collector
zu Ihrer Anwendung hinzugefügt und ordnungsgemäß aktiviert wurde, werden die folgenden Einträge in Ihren Anwendungsprotokollen angezeigt:
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. Weitere Informationen zu den Schritten zur Installation von InstanaNode.js Kollektor je nach Anwendung, siehe Installieren derNode.js Kollektor . Weitere Informationen zu den Fallstricken, die Ihnen im Laufe der Zeit begegnen können, finden Sie im Allgemeine Überlegungen zur Installation Abschnitt.
Wenn Ihre Node.js-Anwendung in Kubernetes läuft, probieren Sie den Instana AutoTrace Webhook aus, der automatisch und transparent die Node.js-Instrumentierung zu Ihren Pods hinzufügt.
Netzprobleme
Wenn der Node.js -Kollektor installiert ist und die folgende Nachricht in Ihren Anwendungsprotokollen angezeigt wird, kann das @instana/collector
-Paket aufgrund eines Netzproblems nicht mit dem Hostagenten kommunizieren:
Announce attempt failed: <error>. Will retry in <seconds>s.
Stellen Sie sicher, dass der Node.js-Prozess auf Port 42699
eine Verbindung zum Hostagenten auf demselben Host herstellen kann. Weitere Informationen zur erforderlichen Netzsichtbarkeit finden Sie unter Netzvoraussetzungen für den Instana-Hostagenten.
Auf containerisierten Plattformen treten Netzsichtbarkeitsprobleme zwischen dem Container mit der Anwendung, für die ein Trace erstellt werden soll, und dem Container des Instana-Hostagenten auf. Ein weiteres zugehöriges Problem besteht darin, dass der Anwendungscontainer, für den ein Trace erstellt werden soll, aufgrund einer Overlay-Netzkonfiguration keine Verbindung zum Instana-Agentencontainer auf demselben Host herstellen kann.
Häufig besteht das Problem darin, dass der Node.js -Collector die falsche IP-Adresse oder den falschen DNS-Namen verwendet, um mit dem Instanziagenten zu kommunizieren. Sie können den Kollektor Node.js anweisen, eine bestimmte Netzadresse zu verwenden, indem Sie die Umgebungsvariable INSTANA_AGENT_HOST
verwenden.
In seltenen Fällen richten Kunden ihren Netzbetrieb so ein, dass es sich bei dem Problem nicht um die Netzadresse, sondern um den vom Collector verwendeten Port handelt.
Wenn Sie eine Portneuzuordnung benötigen, weil der Hostagent nicht am Port 42699
empfangsbereit ist, sondern etwas anderes, können Sie den Collector anweisen, einen anderen Port zu verwenden, indem Sie die Umgebungsvariable INSTANA_AGENT_PORT
verwenden.
Wenn Sie das Problem mit keiner der oben genannten Lösungen beheben können, öffnen Sie ein Support-Ticket.
-Collector zu spät initialisiert
Überwachungsproblemtyp: nodejs_collector_initialized_too_late
Um sicherzustellen, dass das Tracing korrekt funktioniert, fordern und initialisieren Sie die@instana/collector
Paket vor allen anderenNode.js Pakete. Allerdings@instana/collector
Das Paket kann zu spät erkennen, dass es initialisiert wurde. Wenn vor der Initialisierung andere Pakete geladen wurden,nodejs_collector_initialized_too_late
Warnung wird auf IhremNode.js Armaturenbrett. Weitere Informationen finden Sie unter Installieren derNode.js Kollektor Und Allgemeine Überlegungen zur Installation .
Häufig kann der Ansatz, der in Installation ohne Änderung des Quellcodes beschrieben wird, auch helfen, dieses Problem in erweiterten Build-und Implementierungsszenarios zu beheben, insbesondere wenn Sie einen Bundler (z. B. Webpack) oder einen Transpiler (Babel und TypeScript) verwenden.
Paket AutoProfile nicht verfügbar
Überwachungsproblemtyp: nodejs_collector_native_addon_autoprofile_missing
Sie haben den Node.js -Prozess für die Verwendung des FeaturesAutoProfile von Instanakonfiguriert, aber das Paket @instana/autoprofile
wurde möglicherweise nicht geladen. Daher erhalten Sie keine Profilermittlungsinformationen für diese Node.js -App in Instana. 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.
Ein häufiger Grund für das Fehlschlagen der Installation von @instana/autoprofile
(insbesondere für containerisierte Anwendungen) ist das Fehlen erforderlicher Betriebssystempakete für die Erstellung von C + + -Code. Dieses Problem tritt auf, wenn diese Pakete auf der Zielmaschine oder im Zielcontainer-Image fehlen.
Eine weitere mögliche Fehlerursache ist die Art und Weise, wie das Container-Image erstellt wird. Node.js-Pakete müssen auf dem Zielimage installiert werden. Wenn Sie npm install
oder yarn
auf einem Buildsystem ausführen und dann den gesamten node_modules
-Ordner in ein Container-Image mit einer potenziell anderen Architektur oder einem Betriebssystem kopieren, funktioniert dies nicht. Dieser Schritt muss im Zielimage ausgeführt werden.
Wenn die Befehle npm install --no-optional
oder yarn --ignore-optional
zum Installieren von Abhängigkeiten verwendet werden, kann das Paket ebenfalls fehlen.
Weitere Informationen finden Sie unter Native Add-ons.
Fehlende Aufrufe aufgrund nicht unterstützter Auslöser
Normalerweise erfassen Instana-Tracer nur abgehende Anrufe, wenn ein aktiver Eintragsbereich vorhanden ist. In einigen Edge-Fällen kann diese Regel dazu führen, dass Aufrufe, von denen Sie erwarten, dass sie erfasst werden, nicht erfasst werden. Dies ist beispielsweise der Fall, wenn Arbeit durch einen Mechanismus ausgelöst wird, der von der automatischen Instana-Instrumentierung nicht unterstützt wird. Die Lösung für diese Anwendungsfälle besteht darin, mithilfe des Instana Node.js SDK einen Eintragsbereich durch angepasste Traceerstellung zu erstellen. Weitere Informationen zum Node.js SDK finden Sie unter Tracing is inactive when no active entry span exists.