instrumentation.js
Die Datei instrumentation.js|ts
wird verwendet, um Observability-Tools in Ihre Anwendung zu integrieren und ermöglicht es Ihnen, Leistung und Verhalten zu verfolgen sowie Probleme in der Produktion zu debuggen.
Um sie zu verwenden, platzieren Sie die Datei im Stammverzeichnis Ihrer Anwendung oder innerhalb eines src
-Ordners, falls Sie einen verwenden.
Exporte
register
(optional)
Die Datei exportiert eine register
-Funktion, die einmal aufgerufen wird, wenn eine neue Next.js-Server-Instanz initiiert wird. register
kann eine asynchrone Funktion sein.
onRequestError
(optional)
Sie können optional eine onRequestError
-Funktion exportieren, um Server-Fehler an einen beliebigen benutzerdefinierten Observability-Anbieter zu verfolgen.
- Wenn Sie asynchrone Aufgaben in
onRequestError
ausführen, stellen Sie sicher, dass diese abgewartet werden.onRequestError
wird ausgelöst, wenn der Next.js-Server den Fehler erfasst. - Die
error
-Instanz ist möglicherweise nicht die ursprüngliche Fehlerinstanz, da sie von React verarbeitet werden kann, wenn sie während des Server-Komponenten-Renderings auftritt. In diesem Fall können Sie diedigest
-Eigenschaft eines Fehlers verwenden, um den tatsächlichen Fehlertyp zu identifizieren.
Parameter
Die Funktion akzeptiert drei Parameter: error
, request
und context
.
error
: Der gefangene Fehler selbst (Typ ist immerError
), und einedigest
-Eigenschaft, die die eindeutige ID des Fehlers darstellt.request
: Schreibgeschützte Anfrageinformationen, die mit dem Fehler verbunden sind.context
: Der Kontext, in dem der Fehler auftrat. Dies kann der Router-Typ (App oder Pages Router) und/oder (Server-Komponenten ('render'
), Route-Handler ('route'
), Server-Aktionen ('action'
) oder Middleware ('middleware'
)) sein.
Festlegen der Laufzeit
Die Datei instrumentation.js
funktioniert sowohl in der Node.js- als auch in der Edge-Laufzeit. Sie können jedoch process.env.NEXT_RUNTIME
verwenden, um eine bestimmte Laufzeit anzuvisieren.
Versionsverlauf
Version | Änderungen |
---|---|
v15.0.0-RC | onRequestError eingeführt, instrumentation stabil |
v14.0.4 | Turbopack-Unterstützung für instrumentation |
v13.2.0 | instrumentation als experimentelle Funktion eingeführt |