@appsignal/nodejs in Kombination mit @appsignal/javascript und @appsignal/react auf der Client-Seite zu verwenden, um Full-Stack-Performance-Monitoring und Error-Tracking zu erhalten.
Installation
Folgen Sie zunächst der Installationsanleitung für@appsignal/nodejs.
Ändern Sie anschließend die Konfigurationsdatei next.config.js Ihres Next-Projekts, um Instrumentation-Hooks zu aktivieren:
Wenn Sie Next 15 verwenden:
instrumentation.js im Stammverzeichnis Ihres Next.js-Projekts hinzu:
appsignal.cjs, die bei der Konfiguration von AppSignal erstellt wurde. Stellen Sie sicher, dass sich die Datei appsignal.cjs im selben Ordner wie die Datei instrumentation.js befindet, oder passen Sie den Pfad des require in der Datei instrumentation.js entsprechend an.
Ändern Sie schließlich Ihre Konfigurationsdatei appsignal.cjs, um die HTTP-Instrumentierung zu deaktivieren, da sie andernfalls redundante Traces erzeugen würde:
TypeScript-Unterstützung
Bei Verwendung von TypeScript verweisen die Backtraces, die von serverseitigen Next.js-Fehlern erzeugt werden, auf die kompilierten JavaScript-Dateien. Folgen Sie diesen Schritten, um Next.js so zu konfigurieren, dass die Backtraces auf den ursprünglichen TypeScript-Code verweisen. Konfigurieren Sie Next.js zunächst so, dass Source Maps erzeugt werden, indem Sie die folgenden Zeilen zur Dateinext.config.js Ihrer Anwendung hinzufügen:
package.json, wie Ihre Next.js-Anwendung beim Ausführen von npm run start gestartet wird, indem Sie die Umgebungsvariable NODE_OPTIONS verwenden, um das Flag --enable-source-maps an die Node.js-Laufzeit zu übergeben:
@appsignal/javascript verwenden, um clientseitige Fehler zu erfassen, fügen Sie die Option productionBrowserSourceMaps zur Datei next.config.js hinzu, damit Next.js öffentliche Source Maps erzeugt:
Funktionen
Die Next.js-Integration sendet AppSignal eine Performance-Probe für jede Anfrage. Innerhalb jeder Probe zeigt die Event-Timeline Ereignisse mit ihrer Dauer an, die Folgendem entsprechen:- Rendern des Dokuments
- Ausführen der Funktion
getServerSideProps(nur Pages Router) - Ausführen des Route-Handlers
- Ausführen von HTTP-Anfragen mit dem serverseitigen
fetchvon Next.js (nur App Router)
Standalone-Output
Es werden möglicherweise keine Daten gemeldet, wenn Next.js mitoutput: "standalone" in next.config.js konfiguriert ist. Wenn Next.js die App-Größe so optimiert, dass nur das enthalten ist, was von der App verwendet wird, werden die AppSignal-Extension und der Agent ausgelassen, die die Daten an unsere Server melden.
Wenn Sie den Next.js „with-docker“-Starter verwenden, insbesondere das Dockerfile, ist eine Änderung erforderlich, um sicherzustellen, dass die AppSignal-Extension und der Agent im Produktions-Docker-Image enthalten sind.
Fügen Sie die folgende Zeile zu Ihrem Dockerfile hinzu, nach ähnlichen COPY-Zeilen gegen Ende der Datei: