El SDK de navegador recopila errores de frontend, incluyendo el mensaje de error y la traza de pila cuando esté disponible. Para clasificar y gestionar estos errores en el producto Error Tracking, consulte Browser Error Tracking.
Retention Filters que tienen como objetivo sesiones que contienen un evento de Error retienen la sesión actual.
Las métricas de RUMrum.measure.error, rum.measure.session.error y rum.measure.view.error_free se actualizan, independientemente de si la sesión se retiene.
fuente: A partir de excepciones no controladas o rechazos de promesas no controlados en el código fuente
Atributos de error
Para obtener información sobre los atributos predeterminados para todos los tipos de eventos, consulte Datos recopilados. Para obtener información sobre la configuración del muestreo o el contexto global, consulte Modificación de datos y contexto.
Atributo
Tipo
Descripción
error.source
cadena
De dónde proviene el error (por ejemplo, console).
error.type
cadena
El tipo de error (o código de error en algunos casos).
error.message
cadena
Un mensaje conciso, legible por humanos y de una sola línea que explica el evento.
error.stack
cadena
La traza de pila o información complementaria sobre el error.
Una lista opcional de errores que proporciona contexto adicional. Este atributo se utiliza para mostrar los errores por separado y mejorar el formato. Para obtener más información, consulte la documentación de MDN.
Errores de fuente
Los errores de fuente incluyen información a nivel de código sobre el error. Puede encontrar más información sobre los diferentes tipos de error en la documentación de MDN.
Atributo
Tipo
Descripción
error.type
cadena
El tipo de error (o código de error en algunos casos).
Configurar el Error Tracking de WebAssembly
Para rastrear errores de WebAssembly (WASM), instale el plugin WASM del SDK de navegador. Utilice la misma versión para el plugin y el SDK de navegador RUM:
Inicialice RUM antes de cargar cualquier módulo WASM. El plugin observa los módulos creados con las API WebAssembly del navegador y agrega sus URL y los ID de compilación a los errores que contienen trazas de pila WASM. Esto permite que Datadog seleccione el ID de compilación correcto cuando una aplicación carga múltiples módulos.
Los errores no controlados se recopilan automáticamente. Para reportar un error WASM controlado, pase el objeto Error a addError().
Haga un seguimiento de las excepciones controladas, los rechazos de promesas controlados y otros errores que el SDK de navegador no rastrea automáticamente con la API addError():
addError(error:unknown,context?:Context);
Nota: Error Tracking procesa errores que se envían con la fuente establecida en custom, source, report o console, y que contienen una traza de pila. Los errores enviados con cualquier otra fuente (como network) o enviados desde extensiones de navegador no son procesados por Error Tracking.
import{datadogRum}from'@datadog/browser-rum';// Send a custom error with context
consterror=newError('Something wrong occurred.');datadogRum.addError(error,{pageStatus:'beta',});// Send a network error
fetch('<SOME_URL>').catch(function(error){datadogRum.addError(error);})// Send a handled exception error
try{//Some code logic
}catch(error){datadogRum.addError(error);}
// Send a custom error with context
consterror=newError('Something wrong occurred.');window.DD_RUM.onReady(function(){window.DD_RUM.addError(error,{pageStatus:'beta',});});// Send a network error
fetch('<SOME_URL>').catch(function(error){window.DD_RUM.onReady(function(){window.DD_RUM.addError(error);});})// Send a handled exception error
try{//Some code logic
}catch(error){window.DD_RUM.onReady(function(){window.DD_RUM.addError(error);})}
// Send a custom error with context
consterror=newError('Something wrong occurred.');window.DD_RUM&&window.DD_RUM.addError(error,{pageStatus:'beta',});// Send a network error
fetch('<SOME_URL>').catch(function(error){window.DD_RUM&&window.DD_RUM.addError(error);})// Send a handled exception error
try{//Some code logic
}catch(error){window.DD_RUM&&window.DD_RUM.addError(error);}
Instrumentación de límites de error de React
Puede instrumentar los React error boundaries para hacer un seguimiento de errores de renderizado de React usando la API addError() del SDK de navegador RUM.
Los errores de renderizado recopilados contienen una pila de componentes, la cual se desminifica como cualquier otra traza de pila de errores después de que suba los sourcemaps.
Para instrumentar los límites de error de reacción para su monitoreo, use lo siguiente:
Por razones de seguridad, los navegadores ocultan los detalles de los errores provocados por scripts de origen cruzado. Cuando esto sucede, la pestaña Error Details muestra un error con el mensaje mínimo “Script error”.
Con crossorigin="anonymous", la solicitud para obtener el script se realiza de forma segura. No se reenvían datos confidenciales a través de cookies o autenticación HTTP.
Access-Control-Allow-Origin: * para permitir que todos los orígenes obtengan el recurso.
Access-Control-Allow-Origin: example.com para especificar un único origen permitido. Si el servidor admite clientes de múltiples orígenes, debe devolver el origen para el cliente específico que realiza la solicitud.
Lecturas adicionales
Documentación, enlaces y artículos útiles adicionales: