Error Tracking pour les services backend

Présentation

Les détails d'un problème dans l'Error Tracking Explorer

It is critical for your system’s health to consistently monitor the errors collected by Datadog. When there are many individual error events, it becomes hard to prioritize errors for troubleshooting.

Error Tracking simplifies debugging by grouping thousands of similar errors into a single issue. An issue is an aggregation of error data that provides insights such as

  • How many users have been impacted
  • When the error first occurred
  • Which commit probably caused the error

Error Tracking enables you to:

  • Track, triage, and debug fatal errors
  • Group similar errors into issues, so that you can more easily identify important errors and reduce noise
  • Set monitors on error tracking events, such as high error volume or new issues
  • Follow issues over time to know when they first started, if they are still ongoing, and how often they occur

Configuration

Error Tracking est disponible pour tous les langages pris en charge par APM Il ne nécessite aucun SDK supplémentaire ni aucune modification de configuration.

Vous pouvez aussi choisir de voir les extraits de code dans vos traces de piles en configurant lʼintégration GitHub.

Un extrait de code en ligne dans une trace de pile

Pour commencer à configurer votre référentiel, consultez la documentation relative à lʼintégration du code source.

Utilisez les attributs de span pour suivre les spans d’erreur

Les SDK Datadog collectent les erreurs via des intégrations et l’instrumentation manuelle du code source de vos services backend. Un span d’erreur doit contenir les attributs de span error.stack, error.message et error.type et appartenir à une trace complète pour être suivi. Si une erreur est signalée plusieurs fois au sein d’un service, seule l’erreur située en haut est conservée

Le traceur Go a introduit un changement dans les attributs utilisés pour signaler les traces de pile dans sa version v2.7.0. Pour les anciennes versions du traceur Go (avant la v2.7.0), la trace de pile est signalée dans l'attribut error.stack attribut de span. À partir de la v2.7.0, le traceur Go signale la trace de pile de gestion dans l'attribut error.handling_stack attribut de span (avec error.stack portant désormais la pile d'exception lorsqu'elle est disponible). Consultez les traces de pile dans Error Tracking pour plus de détails
Flame graph avec erreurs.

Error Tracking calcule une empreinte pour chaque span d’erreur qu’il traite L’empreinte utilise le type d’erreur, le message d’erreur et les frames qui forment la trace de pile. Les erreurs ayant la même empreinte sont regroupées et appartiennent au même problème. Pour plus d’informations, consultez la documentation de Trace Explorer

Contrôlez quelles erreurs sont suivies

Error Tracking traite automatiquement tous les spans d’erreur, mais vous pouvez contrôler quelles erreurs sont ingérées et comment elles sont gérées :

  • Filtrez les erreurs avec des règles d’inclusion et d’exclusion : définissez des règles pour inclure ou exclure des erreurs en fonction d’attributs tels que le service, l’environnement ou le type d’erreur. Consultez Manage Data Collection
  • Définissez des limites de débit : contrôlez le volume d’erreurs ingérées par jour pour gérer les coûts. Consultez Manage Data Collection
  • Excluez des problèmes spécifiques : marquez les problèmes récurrents non-actionnables comme EXCLUDED pour arrêter de les collecter Consultez Issue States
  • Filtrez des traces entières : empêchez l’envoi de traces à Datadog (plutôt que de filtrer les erreurs). Consultez Ignoring Unwanted Resources in APM

Examinez les problèmes pour commencer le dépannage ou le débogage

Error Tracking catégorise automatiquement les erreurs en problèmes collectés à partir de vos services backend dans l’Error Tracking Explorer Consultez la Error Tracking Explorer documentation pour une présentation des fonctionnalités clés

Les problèmes créés à partir de l’APM incluent la distribution des spans impactés, la dernière trace de pile la plus pertinente, les attributs de span, les tags de host, les tags de conteneur et les métriques

Pour aller plus loin