instrumentation.js
Die Datei instrumentation.js|ts
wird verwendet, um Observability-Tools in Ihre Anwendung zu integrieren, wodurch Sie die Leistung und das Verhalten überwachen sowie Probleme in der Produktion debuggen können.
Um sie zu verwenden, platzieren Sie die Datei im Stammverzeichnis Ihrer Anwendung oder in einem src
-Ordner, falls Sie einen verwenden.
Exporte
register
(optional)
Die Datei exportiert eine register
-Funktion, die einmal aufgerufen wird, wenn eine neue Next.js-Serverinstanz initialisiert wird. register
kann eine asynchrone Funktion sein.
onRequestError
(optional)
Sie können optional eine onRequestError
-Funktion exportieren, um Server-Fehler bei einem beliebigen benutzerdefinierten Observability-Provider zu verfolgen.
- Wenn Sie asynchrone Aufgaben in
onRequestError
ausführen, stellen Sie sicher, dass sie mitawait
behandelt 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 der Fehler während des Renderings von Server Components auftritt. In diesem Fall können Sie die Eigenschaftdigest
eines Fehlers verwenden, um den tatsächlichen Fehlertyp zu identifizieren.
Parameter
Die Funktion akzeptiert drei Parameter: error
, request
und context
.
error
: Der aufgetretene Fehler selbst (Typ ist immerError
) und eine Eigenschaftdigest
, die die eindeutige ID des Fehlers ist.request
: Schreibgeschützte Anfrageinformationen, die mit dem Fehler verknüpft sind.context
: Der Kontext, in dem der Fehler aufgetreten ist. Dies kann der Typ des Routers (App oder Pages Router) und/oder (Server Components ('render'
), Route Handlers ('route'
), Server Actions ('action'
) oder Middleware ('middleware'
)) sein.
Angabe der Laufzeitumgebung
Die Datei instrumentation.js
funktioniert sowohl in der Node.js- als auch in der Edge-Laufzeitumgebung. Sie können jedoch process.env.NEXT_RUNTIME
verwenden, um eine bestimmte Laufzeitumgebung anzusprechen.
Versionsverlauf
Version | Änderungen |
---|---|
v15.0.0 | onRequestError eingeführt, instrumentation stabil |
v14.0.4 | Turbopack-Unterstützung für instrumentation |
v13.2.0 | instrumentation als experimentelle Funktion eingeführt |