Présentation

Error Tracking traite les erreurs collectées depuis le navigateur par le Browser SDK. Chaque fois qu’une erreur source, custom, report ou console contenant une trace de pile est collectée, Error Tracking la traite et la regroupe sous un problème, ou groupe d’erreurs similaires à retrouver dans l’Error Tracking Explorer.

Prérequis

Téléchargez la dernière version du Browser SDK.

Configuration

Pour commencer à envoyer des données d’Error Tracking depuis votre application de navigateur vers Datadog, suivez les instructions de configuration dans l’application ou suivez les étapes ci-dessous.

Étape 1 - Créer l’application

  1. Dans Datadog, accédez à la page Errors > Settings > Browser and Mobile > Add an Application et sélectionnez le type d’application JavaScript (JS).
  2. Saisissez un nom pour votre application, puis cliquez sur Create Application. Cela génère une clientToken et une applicationId pour votre application.

Étape 2 - Choisir la méthode d’installation appropriée

Choisissez le type d’installation pour le Browser SDK.

L’installation via npm (Node Package Manager) est recommandée pour les applications Web modernes. Le Browser SDK est packagé avec le reste de votre code JavaScript frontend. Il n’a aucun impact sur les performances de chargement des pages. Cependant, le SDK peut manquer des erreurs, des ressources et des actions utilisateur déclenchées avant l’initialisation du SDK. Datadog recommande d’utiliser une version correspondante avec le Browser Logs SDK.

Ajoutez @datadog/browser-rum à votre fichier package.json, puis initialisez-le avec :

import { datadogRum } from '@datadog/browser-rum';

datadogRum.init({

   applicationId: '<APP_ID>',
   clientToken: '<CLIENT_TOKEN>',
   service: '<SERVICE>',
   env: '<ENV_NAME>',
   // site: '<SITE>',
   // version: '1.0.0',
   trackUserInteractions: true,
   trackResources: true
});

Le paramètre trackUserInteractions permet la collecte automatique des clics utilisateur dans votre application. Les données sensibles et privées contenues dans vos pages peuvent être incluses pour identifier les éléments avec lesquels une interaction a eu lieu.

L’installation via CDN asynchrone est recommandée pour les applications web ayant des objectifs de performance. Le Browser SDK se charge depuis le CDN de Datadog de manière asynchrone, garantissant que le téléchargement du Browser SDK n’impacte pas les performances de chargement de la page. Cependant, le SDK peut manquer des erreurs, des ressources et des actions utilisateur déclenchées avant l’initialisation du SDK.

Ajoutez l’extrait de code généré dans le tag head de toutes les pages HTML que vous souhaitez surveiller dans votre application. Pour le site :

<script>
  (function(h,o,u,n,d) {
    h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}}
    d=o.createElement(u);d.async=1;d.src=n;d.crossOrigin=''
    n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n)
  })(window,document,'script','https://www.datadoghq-browser-agent.com/us1/v7/datadog-rum.js','DD_RUM')
  window.DD_RUM.onReady(function() {
    window.DD_RUM.init({
      clientToken: '<CLIENT_TOKEN>',
      applicationId: '<APP_ID>',
      // site: '<SITE>',
      service: '<APP_ID>',
      env: '<ENV_NAME>',
      // version: '1.0.0'
    });
  })
</script>

Le paramètre trackUserInteractions permet la collecte automatique des clics utilisateur dans votre application. Les données sensibles et privées contenues dans vos pages peuvent être incluses pour identifier les éléments avec lesquels une interaction a eu lieu.

L’installation via CDN synchrone est recommandée pour collecter tous les événements. Le Browser SDK se charge depuis le CDN de Datadog de manière synchrone, garantissant que le Browser SDK se charge en premier et collecte toutes les erreurs, ressources et actions utilisateur. Cette méthode peut impacter les performances de chargement de la page.

Ajoutez l’extrait de code généré au tag head (avant tout autre tag script) de chaque page HTML que vous souhaitez surveiller dans votre application. Placer le tag script plus haut et la charger de manière synchrone garantit que Datadog RUM peut collecter toutes les données de performance et les erreurs. Pour le site :

<script
    src="https://www.datadoghq-browser-agent.com/us1/v7/datadog-rum.js"
    type="text/javascript"
    crossorigin>
</script>
<script>
    window.DD_RUM && window.DD_RUM.init({
      clientToken: '<CLIENT_TOKEN>',
      applicationId: '<APP_ID>',
      // site: '<SITE>',
      service: '<APP_ID>',
      env: '<ENV_NAME>',
      // version: '1.0.0'
    });
</script>

Le paramètre trackUserInteractions permet la collecte automatique des clics utilisateur dans votre application. Les données sensibles et privées contenues dans vos pages peuvent être incluses pour identifier les éléments avec lesquels une interaction a eu lieu.

TypeScript (facultatif)

Si vous initialisez le SDK dans un projet TypeScript, utilisez l’extrait de code ci-dessous. Les types sont compatibles avec TypeScript >= 3.8.2.

Pour les versions antérieures de TypeScript, importez les sources JavaScript et utilisez des variables globales pour éviter tout problème de compilation.
import '@datadog/browser-rum/bundle/datadog-rum'

window.DD_RUM.init({
  applicationId: 'XXX',
  clientToken: 'XXX',
  site: 'datadoghq.com',
  trackUserInteractions: true,
  trackResources: true,
  ...
})

Étape 3 - Configurer l’environnement et les paramètres

  1. Dans le champ Environnement, définissez l’environnement (env) pour que votre application utilise le unified service tagging.
  2. Dans le champ Service, définissez le service (service) pour que votre application utilise le unified service tagging.
  3. Définissez le niveau de confidentialité pour les saisies utilisateur. Consultez Options de confidentialité du navigateur pour Session Replay pour plus de détails.
  4. Définissez un numéro de version (version) pour votre application déployée dans l’extrait d’initialisation. Pour plus d’informations, consultez Tagging.
  5. Configurez des paramètres supplémentaires si nécessaire. Consultez la section Référence de configuration ci-dessous pour toutes les options disponibles.

Étape 4 - Déployez votre application

Déployez les modifications sur votre application. Une fois votre déploiement en ligne, Datadog collecte les événements depuis les navigateurs de vos utilisateurs.

Téléchargez vos maps source JavaScript pour accéder aux stack traces non minifiées. Consultez le guide de téléchargement des maps source.

Si votre application de navigateur utilise WebAssembly, configurez le Browser SDK WASM plugin et téléchargez les symboles de débogage du module.

Étape 6 - Visualisez vos données

Maintenant que vous avez terminé la configuration de base du Browser Error Tracking, votre application collecte les erreurs de navigateur et vous pouvez commencer à surveiller et à déboguer les problèmes en temps réel.

Visualisez les données collectées dans des dashboards ou créez une requête de recherche dans Error Tracking.

Tant que Datadog ne reçoit pas de données, votre application apparaît comme pending sur la page Applications.

En plus d’envoyer des maps source, le Datadog CLI rapporte des informations Git telles que le hash du commit, l’URL du dépôt et une liste des chemins de fichiers suivis dans le dépôt de code.

Error Tracking peut utiliser ces informations pour corréler les erreurs avec votre code source, vous permettant de passer de n’importe quelle trame de trace de pile à la ligne de code associée dans GitHub, GitLab et Bitbucket.

La liaison des trames de stack trace au code source est prise en charge dans la version Datadog CLI 0.12.0 et ultérieure.

Pour plus d’informations, consultez l’intégration du code source Datadog.

Tagging for Error Tracking

Ces tags (configurés à l’étape 3 ci-dessus) alimentent la fonctionnalité d’Error Tracking :

  • Filtrage et facettage des problèmes par service et env
  • Corrélation inter-produits avec RUM, Logs et APM pour le même service/env
  • Correspondance des maps source téléchargées via les mêmes service et version que vous configurez lors du téléchargement

Un service est un dépôt de code indépendant et déployable qui correspond à un ensemble de pages :

  • Si votre application de navigateur a été construite comme un monolithe, votre application Datadog possède un nom de service pour l’application.
  • Si votre application de navigateur a été construite sous forme de dépôts séparés pour plusieurs pages, modifiez les noms de service par défaut tout au long du cycle de vie de votre application.

En savoir plus sur le tagging dans Datadog.

Référence de configuration

Consultez la Browser SDK API Reference pour obtenir la liste complète des options de configuration disponibles.

Étapes suivantes

Vous pouvez surveiller les exceptions non gérées, les rejets de promesses non gérés, les exceptions gérées, les rejets de promesses gérés et d’autres erreurs que le Browser SDK ne suit pas automatiquement. En savoir plus sur Collecting Browser Errors.

Pour aller plus loin