Contrôle du volume d'ingestion avec le tracing distribué d'APM

Présentation

La page de contrôle de l’ingestion fournit des informations détaillées sur la configuration de l’ingestion pour tous les services, que ce soit au niveau de l’Agent ou des bibliothèques de tracing. Tous les mécanismes d’ingestion sont détaillés dans la documentation publique et peuvent être configurés.

La page de contrôle de l’ingestion vous offre une visibilité complète sur votre volume de spans ainsi qu’un ensemble de contrôles pratiques. Grâce à cette page, vous pouvez :

  • ingérer les données les plus pertinentes, en fonction de votre entreprise et de vos objectifs d’observabilité ;
  • réduire les coûts liés au réseau en envoyant uniquement les données de tracing utilisées sur la plateforme Datadog ;
  • contrôler et gérer vos coûts globaux.

Répercussions de la diminution du volume d’ingestion de traces

Échantillonnage de l'ingestion APM indiquant que 25 % des traces ont été ingérées

Si vous choisissez de réduire le volume d’ingestion de certains services, les métriques liées aux requêtes, aux erreurs et à la latence (à savoir les métriques RED, pour Requête, Erreurs et Durée) restent justes, car elles sont calculées à partir de l’ensemble du trafic de l’application, sans tenir compte de la configuration de l’échantillonnage. Ces métriques sont fournies lorsque vous adoptez la solution APM Datadog. Afin de garantir une visibilité complète sur le trafic de votre application, vous pouvez vous servir de ces métriques pour créer des dashboards, monitors et SLO. Vous pourrez ainsi identifier les erreurs potentielles concernant un service ou une ressource.

Les données des traces sont très répétitives. Pour cette raison, lorsque vous échantillonnez l’ingestion, vous pouvez tout de même étudier des échantillons de traces afin d’analyser la source d’une erreur. Pour les services à haut débit, vous n’avez généralement pas besoin de recueillir chaque requête : les problèmes suffisamment graves sont systématiquement détectables dans plusieurs traces. Les contrôles d’ingestion vous permettent de visualiser les données dont vous avez besoin pour diagnostiquer des problèmes tout en respectant votre marge d’erreur.

Métriques générées à partir de spans

Les métriques générées à partir de spans reposent sur les spans ingérées.

Toute diminution des taux d’échantillonnage de l’ingestion a une incidence sur les métriques de type count. Les métriques de type distribution, par exemple les mesures duration, ne sont pas concernées par la réduction. En effet, l’échantillonnage est relativement uniforme, ce qui fait que la distribution de la latence continue à fournir une image précise du trafic.

Monitors

La diminution du volume d’ingestion a une incidence sur les monitors de métrique basés sur des métriques générées à partir de spans. Les monitors basés sur des métriques trace.__ demeurent fidèles, car ces métriques sont calculées à partir de l’ensemble du trafic.

Les monitors d’analyse de traces basés sur des counts sont également affectés par une diminution. Vérifiez si vous avez créé ce type de monitor en recherchant des monitors type:trace-analytics depuis la page de gestion des monitors.

Évaluer la configuration d’ingestion de vos services

Pour évaluer le statut actuel de l’instrumentation de vos applications, rendez-vous sur la page de contrôle de l’ingestion des traces. Cette dernière fournit des informations détaillées sur la configuration de l’Agent et des bibliothèques de tracing.

Vérifier si l’allocation d’ingestion mensuelle a été ou non dépassée

Utilisez le KPI d’utilisation mensuelle de l’ingestion pour estimer votre utilisation par rapport à l’allocation mensuelle de 150 Go de spans ingérées par host APM (cette allocation est cumulée pour tous les hosts APM).

KPI d'ingestion excédentaire indiquant une estimation de 170 % de l'utilisation mensuelle (23,3 To tous les mois pour l'ensemble de l'infrastructure)

Analyse avancée de l’utilisation d’APM

La configuration d’ingestion peut être analysée pour chaque service. Cliquez sur la ligne d’un service pour afficher une synthèse de l’ingestion pour ce service comportant les informations suivantes :

  • Répartition des motifs d’ingestion : découvrez le volume d’ingestion généré par chaque mécanisme d’ingestion.
  • Principaux responsables de l’échantillonnage : consultez les services en amont qui prennent des décisions d’échantillonnage pour les spans ingérées dans le cadre du mécanisme d’ingestion par défaut.

Vous pouvez également consulter un dashboard prêt à l’emploi afin d’obtenir davantage d’insights sur les tendances historiques relatives à votre utilisation de l’ingestion et au volume associé. Dupliquez ce dashboard pour pouvoir modifier les widgets et approfondir vos analyses.

Réduire votre volume d’ingestion

Identifier les services à l’origine de la majorité du volume d’ingestion

Pour identifier les services à l’origine de la majorité du volume d’ingestion, triez le tableau en fonction de la colonne Downstream Bytes/s. Cela vous permet de visualiser les services qui prennent le plus de décisions d’échantillonnage et affectent par la même occasion les services en aval.

Lorsqu’un service initie une trace, la colonne Downstream Bytes/s tient également compte du volume de spans provenant des services en aval pour lesquels le service a pris des décisions d’échantillonnage.

La colonne Traffic Breakdown offre une bonne indication de la configuration d’échantillonnage du service.

Si le service possède une valeur Downstream Bytes/s élevée et un taux d’échantillonnage important (ce taux est indiqué dans la section bleue de la colonne Traffic Breakdown), la diminution du taux d’échantillonnage de ce service devrait avoir une incidence conséquente sur le volume d’ingestion.

Échantillonnage de l'ingestion APM, avec 99 % des traces ingérées et un échantillonnage nul

Configurer de façon globale le taux d’échantillonnage de l’ingestion au niveau de l’Agent

La colonne Configuration indique si des règles d’échantillonnage ont été configurées pour vos services. Si les principaux services possèdent une configuration AUTOMATIC dans le tableau, tout changement de la configuration de l’Agent entraînera une diminution globale du volume pour l’ensemble des services.

Pour diminuer le volume d’ingestion au niveau de l’Agent, configurez DD_APM_MAX_TPS (valeur par défaut : 10) afin de réduire la part du volume d’échantillonnage en amont. Pour en savoir plus, consultez la documentation relative au mécanisme d’échantillonnage par défaut.

En outre, pour réduire le volume de traces error et rare, procédez comme suit :

  • Configurez DD_APM_ERROR_TPS pour diminuer la part de l’échantillonnage d’erreurs.
  • Définissez DD_APM_DISABLE_RARE_SAMPLER sur true pour interrompre l’échantillonnage de traces rare.

Configurer de façon autonome le taux d’échantillonnage de l’ingestion pour les services au niveau de la bibliothèque

Lorsque vous configurez des taux d’échantillonnage pour plusieurs services à haut débit, il est possible de réduire une grande partie du volume d’ingestion excédentaire.

Cliquez sur un service pour afficher la synthèse d’ingestion du service. Consultez la répartition des motifs d’ingestion dans le volet latéral pour obtenir une vue d’ensemble de la part du volume d’ingestion attribuée à chaque mécanisme.

Si l’échantillonnage en amont (auto ou rule) constitue le principal motif pour la majorité du volume d’ingestion, vous pouvez configurer le volume en définissant une règle d’échantillonnage au niveau de la bibliothèque de tracing.

Cliquez sur le bouton Manage Ingestion Rate pour configurer un taux d’échantillonnage pour le service. Sélectionnez le langage du service ainsi que le taux d’échantillonnage de l’ingestion à appliquer.

Remarque : vous devez redéployer l’application pour que les modifications apportées à la configuration s’appliquent. Datadog vous conseille de modifier la configuration à l’aide de variables d’environnement.

Définition des motifs d’ingestion

Vérifiez quels mécanismes d’ingestion sont à l’origine de la majorité du volume d’ingestion.

Par défaut, le mécanisme d’échantillonnage de traces est basé sur un fonctionnement en amont. La décision d’échantillonnage d’une trace est prise au début de son cycle de vie, puis propagée en aval dans le contexte des requêtes, afin que vous puissiez toujours visualiser et analyser des traces complètes.

L’échantillonnage en amont est configurable dans les bibliothèques de tracing ou depuis l’Agent Datadog :

Motif d’ingestionLieuDescription du mécanisme d’ingestionValeur par défaut
autoAgentL’Agent Datadog applique des taux d’échantillonnage aux bibliothèques de tracing.10 traces par seconde et par Agent
ruleBibliothèques de tracing Les bibliothèques définissent le pourcentage d’échantillonnage pour certains services.null

Plusieurs autres motifs d’ingestion peuvent s’afficher dans la page de contrôle de l’ingestion et, sous la forme de tag, dans la métrique datadog.estimated_usage.apm.ingested_bytes. Ces motifs d’ingestion peuvent être à l’origine de votre volume d’ingestion :

Motif d’ingestionLieuDescription du mécanisme d’ingestionValeur par défaut
errorAgentÉchantillonnage des erreurs non interceptées par l’échantillonnage en amont.10 traces par seconde et par Agent (null si des règles sont définies)
rareAgentÉchantillonnage de traces rare (permettant de couvrir toutes les combinaisons d’un ensemble de tags de span).5 traces par seconde et par Agent (null si des règles sont définies)
manualDans le codeRemplacement d’une décision dans le code visant à conserver ou à ignorer une span et ses enfants.null
analyticsAgent et bibliothèques de tracingMécanisme d’ingestion obsolète permettant d’échantillonner des spans individuelles sans la trace complète.null

D’autres solutions peuvent également être à l’origine d’un volume de spans échantillonnées :

  • synthetics et synthetics-browser : les tests Browser et API sont associés à la trace générée par le test.
  • rum : les requêtes provenant d’applications Web et mobiles sont liées aux traces correspondantes du backend.
  • lambda et xray : il s’agit des traces générées par les fonctions AWS Lambda et instrumentées avec des bibliothèques X-Ray ou Datadog.

Consultez la documentation relative aux mécanismes d’ingestion pour en savoir plus sur les motifs d’ingestion.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles:

PREVIEWING: rtrieu/product-analytics-ui-changes